<?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>Aeon Emulator Blog</title>
	<atom:link href="http://gdaeon.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://gdaeon.wordpress.com</link>
	<description></description>
	<lastBuildDate>Wed, 27 Jul 2011 02:35:45 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='gdaeon.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://0.gravatar.com/blavatar/4b2c7c5fc352d9fa4ff397e9aeb383b8?s=96&#038;d=http%3A%2F%2Fs2.wp.com%2Fi%2Fbuttonw-com.png</url>
		<title>Aeon Emulator Blog</title>
		<link>http://gdaeon.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://gdaeon.wordpress.com/osd.xml" title="Aeon Emulator Blog" />
	<atom:link rel='hub' href='http://gdaeon.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Weird Code Finally Explained</title>
		<link>http://gdaeon.wordpress.com/2011/07/26/weird-code-finally-explained/</link>
		<comments>http://gdaeon.wordpress.com/2011/07/26/weird-code-finally-explained/#comments</comments>
		<pubDate>Wed, 27 Jul 2011 02:35:44 +0000</pubDate>
		<dc:creator>Greg Divis</dc:creator>
				<category><![CDATA[Aeon]]></category>

		<guid isPermaLink="false">https://gdaeon.wordpress.com/2011/07/26/weird-code-finally-explained/</guid>
		<description><![CDATA[Writing something like Aeon meant that I’d often find myself poring over disassembly instructions from some old, clever code. By clever, I mean performance optimizations which seem especially exotic (or just nonsensical) today. Not that we don’t have our own exotic optimizations today, but most of the ones I run into are in old games [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=gdaeon.wordpress.com&amp;blog=9564223&amp;post=183&amp;subd=gdaeon&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Writing something like Aeon meant that I’d often find myself poring over disassembly instructions from some old, clever code. By clever, I mean performance optimizations which seem especially exotic (or just nonsensical) today. Not that we don’t have our own <em>exotic </em>optimizations today, but most of the ones I run into are in old games – and games rarely concern themselves with maintainability: you ship the game, maybe patch it here and there, but ultimately it’s just a piece of consumer software that will likely be discarded in at most a year or two.</p>
<p>Anyway, with that bit of pointless exposition out of the way, I’d like to introduce you to the HLT instruction. It takes no operands, and simply tells the CPU to halt: that is, it will just stop what it’s doing and enter a low-power state until an interrupt wakes it up. It’s employed by operating systems today to conserve energy when the system is idle, but the intended use doesn’t really matter for this article. I was puzzled for a very long time when I came across a HLT instruction in Jazz Jackrabbit some time ago (more specifically, it was in the protected-mode extender that came with Turbo Pascal 7). I figured no DOS game would have any reason to use this instruction intended for operating systems, so I tried in vain to find an emulation bug in Aeon that would explain why a JMP instruction pointed to a HLT.</p>
<p>I finally fired up a debugger on a real DOS system and determined that there was no bug in Aeon. Jazz Jackrabbit was actually trying to halt the CPU. (Never thought I would write that sentence…) Actually, it was trying to halt the CPU from user mode, which according to the Intel documentation on the instruction should cause a General Protection Fault exception. This exception would then be handled in kernel mode, and in the case of Jazz Jackrabbit’s DOS extender, a handler would examine the user mode stack and take some action, then eventually return control to user mode. Basically, they had used a General Protection Fault exception to transfer control to kernel mode.</p>
<p>Why would anything do this? It made no sense to me, but once I implemented this behavior the game loaded up and worked just fine (well, except for the distorted sprites… bah, that’s another story)</p>
<p>Well, recently I’ve finally gotten a copy of Raymond Chen’s <a href="http://www.amazon.com/gp/product/0321440307?ie=UTF8&amp;tag=tholneth-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=0321440307">book</a>. In it (<a href="http://blogs.msdn.com/b/oldnewthing/archive/2004/12/15/313250.aspx">also on his blog</a>), he relates a story that Windows ended up spending a lot of its time handling Invalid Instruction Exceptions because at the time, causing one of those was the fastest way to switch to kernel mode. Doesn’t seem like much of a stretch that the authors of Turbo Pascal 7’s DOS extender would have used a similar technique…</p>
<p>One mystery solved. Now if only I could figure out those sprites.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/gdaeon.wordpress.com/183/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/gdaeon.wordpress.com/183/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/gdaeon.wordpress.com/183/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/gdaeon.wordpress.com/183/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/gdaeon.wordpress.com/183/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/gdaeon.wordpress.com/183/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/gdaeon.wordpress.com/183/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/gdaeon.wordpress.com/183/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/gdaeon.wordpress.com/183/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/gdaeon.wordpress.com/183/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/gdaeon.wordpress.com/183/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/gdaeon.wordpress.com/183/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/gdaeon.wordpress.com/183/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/gdaeon.wordpress.com/183/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=gdaeon.wordpress.com&amp;blog=9564223&amp;post=183&amp;subd=gdaeon&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://gdaeon.wordpress.com/2011/07/26/weird-code-finally-explained/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/c159cc82496a36a427024d5b25a93fcd?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Greg</media:title>
		</media:content>
	</item>
		<item>
		<title>Aeon Version 0.64</title>
		<link>http://gdaeon.wordpress.com/2011/06/30/aeon-version-0-64/</link>
		<comments>http://gdaeon.wordpress.com/2011/06/30/aeon-version-0-64/#comments</comments>
		<pubDate>Thu, 30 Jun 2011 19:38:42 +0000</pubDate>
		<dc:creator>Greg Divis</dc:creator>
				<category><![CDATA[Aeon]]></category>
		<category><![CDATA[New Version]]></category>

		<guid isPermaLink="false">https://gdaeon.wordpress.com/2011/06/30/aeon-version-0-64/</guid>
		<description><![CDATA[Not too many changes in this release, except for a significant amount of optimization in instruction decoding. I’ve noticed the biggest impact on 64-bit systems – upwards of 40% in some applications in my informal testing, but much less substantial on 32-bit systems. Optimized instruction decoding: emulation is much faster on x64 and a little [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=gdaeon.wordpress.com&amp;blog=9564223&amp;post=181&amp;subd=gdaeon&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Not too many changes in this release, except for a significant amount of optimization in instruction decoding. I’ve noticed the biggest impact on 64-bit systems – upwards of 40% in some applications in my informal testing, but much less substantial on 32-bit systems.</p>
<ul>
<li>Optimized instruction decoding: emulation is much faster on x64 and a little faster on x86</li>
<li>Fixed CD-ROM bug where Aeon wasn&#8217;t detecting some of the content in directories with lots of files</li>
<li>Fixed bug where VGA VerticalEnd register was ignored</li>
</ul>
<p>As always, the download is <a href="http://aeonemulator.net/Download">here</a>.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/gdaeon.wordpress.com/181/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/gdaeon.wordpress.com/181/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/gdaeon.wordpress.com/181/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/gdaeon.wordpress.com/181/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/gdaeon.wordpress.com/181/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/gdaeon.wordpress.com/181/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/gdaeon.wordpress.com/181/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/gdaeon.wordpress.com/181/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/gdaeon.wordpress.com/181/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/gdaeon.wordpress.com/181/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/gdaeon.wordpress.com/181/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/gdaeon.wordpress.com/181/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/gdaeon.wordpress.com/181/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/gdaeon.wordpress.com/181/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=gdaeon.wordpress.com&amp;blog=9564223&amp;post=181&amp;subd=gdaeon&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://gdaeon.wordpress.com/2011/06/30/aeon-version-0-64/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/c159cc82496a36a427024d5b25a93fcd?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Greg</media:title>
		</media:content>
	</item>
		<item>
		<title>Quest for Glory</title>
		<link>http://gdaeon.wordpress.com/2011/05/01/quest-for-glory/</link>
		<comments>http://gdaeon.wordpress.com/2011/05/01/quest-for-glory/#comments</comments>
		<pubDate>Mon, 02 May 2011 00:30:36 +0000</pubDate>
		<dc:creator>Greg Divis</dc:creator>
				<category><![CDATA[Aeon]]></category>
		<category><![CDATA[Fun & Games]]></category>

		<guid isPermaLink="false">https://gdaeon.wordpress.com/2011/05/01/quest-for-glory/</guid>
		<description><![CDATA[I’ve mentioned before how I used to love point &#38; click adventure games. The series that really stood out the most for me was Quest for Glory. I like them, but these games are really pretty strange – part adventure game, part RPG, part parody, and they somehow managed to be both epic and farcical. [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=gdaeon.wordpress.com&amp;blog=9564223&amp;post=180&amp;subd=gdaeon&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I’ve mentioned before how I used to love point &amp; click adventure games. The series that really stood out the most for me was Quest for Glory.</p>
<p><a href="http://gdaeon.files.wordpress.com/2011/05/image.png"><img style="background-image:none;border-bottom:0;border-left:0;padding-left:0;padding-right:0;display:inline;border-top:0;border-right:0;padding-top:0;" title="Quest for Glory I" border="0" alt="Quest for Glory I" src="http://gdaeon.files.wordpress.com/2011/05/image_thumb.png?w=324&#038;h=204" width="324" height="204" /></a><a href="http://gdaeon.files.wordpress.com/2011/05/image1.png"><img style="background-image:none;border-bottom:0;border-left:0;padding-left:0;padding-right:0;display:inline;border-top:0;border-right:0;padding-top:0;" title="Quest for Glory III" border="0" alt="Quest for Glory III" src="http://gdaeon.files.wordpress.com/2011/05/image_thumb1.png?w=324&#038;h=204" width="324" height="204" /></a></p>
<p>I like them, but these games are really pretty strange – part adventure game, part RPG, part parody, and they somehow managed to be both epic and farcical. Not too many games could pull off the sheer number of puns they used. That being said, they aren’t without their problems – the combat ranges from clunky at best to aggravating at worst, although due to the game design fortunately most of it could be avoided.</p>
<p><a href="http://gdaeon.files.wordpress.com/2011/05/image2.png"><img style="background-image:none;border-bottom:0;border-left:0;padding-left:0;padding-right:0;display:inline;border-top:0;border-right:0;padding-top:0;" title="Quest for Glory IV" border="0" alt="Quest for Glory IV" src="http://gdaeon.files.wordpress.com/2011/05/image_thumb2.png?w=324&#038;h=204" width="324" height="204" /></a><a href="http://gdaeon.files.wordpress.com/2011/05/image3.png"><img style="background-image:none;border-bottom:0;border-left:0;padding-left:0;padding-right:0;display:inline;border-top:0;border-right:0;padding-top:0;" title="Character Screen" border="0" alt="Character Screen" src="http://gdaeon.files.wordpress.com/2011/05/image_thumb3.png?w=324&#038;h=204" width="324" height="204" /></a></p>
<p>One of the cool things about these games was how the solutions to most of the puzzles were completely different depending on whether you played the game as a fighter, mage, or thief, and the fact that you could import your character from one game to the next, so your character stats would follow you through every game. Five Quest for Glory games were made, the first four work in Aeon, but the fifth one was made for Windows 95 – there is no DOS version. Unfortunately, it pretty much <strong>only</strong> runs on Windows 95 too, so you’d have trouble running it outside of a virtual machine or an old PC. The final game is generally considered the weakest in the series, so it’s not that big of a deal, but I still like it as a nice epilogue to the first four adventures.</p>
<p>If you’ve never played these before, I’d still recommend them (if you can find them): simple, goofy fun, with some <a href="http://queststudios.com/Joomla/index.php?option=com_content&amp;view=section&amp;id=25&amp;Itemid=94">really great music</a>. I should also mention, however, that Quest for Glory II was the only game in the series to never receive an official VGA makeover – instead, some <em>very</em> dedicated and talented fans created one a few years ago. They made a huge number of improvements over the original, but kept all the charm – and you can <a href="http://www.agdinteractive.com/games/qfg2/">download it for free</a>. Best of all, you don’t even need an emulator to run it :)</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/gdaeon.wordpress.com/180/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/gdaeon.wordpress.com/180/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/gdaeon.wordpress.com/180/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/gdaeon.wordpress.com/180/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/gdaeon.wordpress.com/180/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/gdaeon.wordpress.com/180/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/gdaeon.wordpress.com/180/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/gdaeon.wordpress.com/180/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/gdaeon.wordpress.com/180/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/gdaeon.wordpress.com/180/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/gdaeon.wordpress.com/180/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/gdaeon.wordpress.com/180/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/gdaeon.wordpress.com/180/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/gdaeon.wordpress.com/180/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=gdaeon.wordpress.com&amp;blog=9564223&amp;post=180&amp;subd=gdaeon&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://gdaeon.wordpress.com/2011/05/01/quest-for-glory/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/c159cc82496a36a427024d5b25a93fcd?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Greg</media:title>
		</media:content>

		<media:content url="http://gdaeon.files.wordpress.com/2011/05/image_thumb.png" medium="image">
			<media:title type="html">Quest for Glory I</media:title>
		</media:content>

		<media:content url="http://gdaeon.files.wordpress.com/2011/05/image_thumb1.png" medium="image">
			<media:title type="html">Quest for Glory III</media:title>
		</media:content>

		<media:content url="http://gdaeon.files.wordpress.com/2011/05/image_thumb2.png" medium="image">
			<media:title type="html">Quest for Glory IV</media:title>
		</media:content>

		<media:content url="http://gdaeon.files.wordpress.com/2011/05/image_thumb3.png" medium="image">
			<media:title type="html">Character Screen</media:title>
		</media:content>
	</item>
		<item>
		<title>All about the Game Port</title>
		<link>http://gdaeon.wordpress.com/2011/04/21/all-about-the-game-port/</link>
		<comments>http://gdaeon.wordpress.com/2011/04/21/all-about-the-game-port/#comments</comments>
		<pubDate>Thu, 21 Apr 2011 18:00:00 +0000</pubDate>
		<dc:creator>Greg Divis</dc:creator>
				<category><![CDATA[Aeon]]></category>
		<category><![CDATA[Hardware]]></category>

		<guid isPermaLink="false">https://gdaeon.wordpress.com/2011/04/22/all-about-the-game-port/</guid>
		<description><![CDATA[Probably the biggest noticeable feature of Aeon 0.63 is support for emulating joysticks/gamepads through the PC game port. This was a pretty easy device to emulate, but hasn’t really been a priority for me since I basically never use game controllers on my PC. Turns out other people do though… Go figure :) Anyway, the [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=gdaeon.wordpress.com&amp;blog=9564223&amp;post=168&amp;subd=gdaeon&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Probably the biggest noticeable feature of Aeon 0.63 is support for emulating joysticks/gamepads through the PC game port. This was a pretty easy device to emulate, but hasn’t really been a priority for me since I basically never use game controllers on my PC. Turns out other people do though… Go figure :)</p>
<p>Anyway, the game port interface is actually pretty interesting in that it provides essentially no abstraction from the hardware. Learning how it worked made me finally understand what the deal was with every game needing calibration to work properly, and those weird dials on analog joysticks that I always had to fiddle with to keep the controls from drifting. If you already know how this works or don’t care, you won’t find this article very interesting, so you should probably stop now. Otherwise, read on…</p>
<h2>Using a Joystick in DOS</h2>
<p>DOS provides essentially no abstraction on anything except the disk (I guess that’s why it’s the Disk Operating System), so to work with the joystick, games would have to read a byte from the game port. Four of the bits of this byte are used to indicate the status of the first four buttons (or the first two buttons of each joystick if two are attached). The other four bits are used to indicate the position of the first four analog axes (again, or the first two of each joystick if two are attached).</p>
<p>Reading button status is easy enough: just look for whether the appropriate bit is cleared, which indicates that the button is pressed. Getting the position of an axis is another story.</p>
<p>You might wonder how an analog value can be transmitted using a single bit. The answer is: time. A DOS program first writes a value to the joystick port (any value will do), then immediately goes into a loop continuously reading the status byte. The axis bits will all start out at 1, and eventually will all drop to 0. The amount of time it takes for this to happen is proportional to the joystick’s position in that axis. The amount of time this takes is device dependent and can be measured in microseconds, so a game would count the number of iterations it takes for the value to drop to 0, rather than using timers or anything sophisticated like that.</p>
<p>Weird, isn’t it? Well, it turns out this makes a lot of sense.</p>
<h2>The Hardware</h2>
<p>I mentioned before how DOS provides no abstraction for most hardware devices, so you are left communicating with them directly most of the time. Most devices have some degrees of abstraction themselves, so this isn’t a huge problem, but the game port has essentially none. The classic joystick design that it works with was little more than a couple <a href="http://en.wikipedia.org/wiki/Potentiometer">potentiometers</a> (basically adjustable resistors if you are unfamiliar with circuits). Writing a value to the port causes some capacitors in the device to become charged. The speed this charge is lost depends on how much resistance is in the potentiometers (which is controlled by the joystick position and those crazy dials).</p>
<p>So that’s really all there is to it. A charge is placed on a circuit and the program waits for it to go away.</p>
<h2>Emulation</h2>
<p>For me, it was important to understand how programs would use the game port for me to emulate it properly. Fortunately, modern API’s make it a lot easier to read a joystick position, so it was trivial to query DirectInput for this. That means I just had to translate this value into something resembling a decaying voltage.</p>
<p>Fortunately, I knew that this charge decayed so quickly that DOS programs would generally just count iterations in a tight loop that looks something like this:</p>
<pre>          mov cx, 0        ; initialize cx to 0 for a counter
          mov dx, 201h     ; set game port 201h to the dx register
          out dx,al        ; write any value to the port
start:    inc cx,1         ; increment cx register by 1
          in al,dx         ; read current status of the game port
          test al,1        ; check whether the joystick 1 x-axis 1 bit is set
          jnz start        ; go to start if the bit is still set</pre>
<p>So at the end of this loop, the CX register will contain the number of iterations it took for the bit to drop to 0. Knowing this, I can “cheat,” and just use a counter myself instead of doing any complicated high-resolution timing. All I have to do is scale the position of the joystick and decrement this value every time a program reads from the game port. When the value is greater than 0, Aeon returns a 1 for that axis; otherwise it returns a 0. This approach has worked perfectly in every game I’ve tried so far, and it was really easy.</p>
<h2>Modern Controllers</h2>
<p>Modern game controllers are more sophisticated than this – they are designed to communicate using USB or some other proprietary digital protocol and contain all of the logic needed to convert an analog position into a digital value, so fortunately modern game developers don’t have to be aware of the hardware implementation of how their input devices operate anymore. That’s fine with me. I for one have no desire to go back to the days of calibration and fidgeting with dials.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/gdaeon.wordpress.com/168/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/gdaeon.wordpress.com/168/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/gdaeon.wordpress.com/168/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/gdaeon.wordpress.com/168/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/gdaeon.wordpress.com/168/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/gdaeon.wordpress.com/168/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/gdaeon.wordpress.com/168/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/gdaeon.wordpress.com/168/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/gdaeon.wordpress.com/168/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/gdaeon.wordpress.com/168/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/gdaeon.wordpress.com/168/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/gdaeon.wordpress.com/168/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/gdaeon.wordpress.com/168/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/gdaeon.wordpress.com/168/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=gdaeon.wordpress.com&amp;blog=9564223&amp;post=168&amp;subd=gdaeon&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://gdaeon.wordpress.com/2011/04/21/all-about-the-game-port/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/c159cc82496a36a427024d5b25a93fcd?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Greg</media:title>
		</media:content>
	</item>
		<item>
		<title>Daggerfall</title>
		<link>http://gdaeon.wordpress.com/2011/04/20/daggerfall/</link>
		<comments>http://gdaeon.wordpress.com/2011/04/20/daggerfall/#comments</comments>
		<pubDate>Thu, 21 Apr 2011 03:46:59 +0000</pubDate>
		<dc:creator>Greg Divis</dc:creator>
				<category><![CDATA[Aeon]]></category>
		<category><![CDATA[Fun & Games]]></category>

		<guid isPermaLink="false">https://gdaeon.wordpress.com/2011/04/20/daggerfall/</guid>
		<description><![CDATA[I’ve always been a fan of computer RPG’s, and usually the bigger the better. I first heard about the game Daggerfall years after its release and had a lot of trouble tracking it down, but had tons of fun with it once I did. To be honest, I didn’t play the game so much as [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=gdaeon.wordpress.com&amp;blog=9564223&amp;post=167&amp;subd=gdaeon&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I’ve always been a fan of computer RPG’s, and usually the bigger the better. I first heard about the game <em>Daggerfall</em> years after its release and had a lot of trouble tracking it down, but had tons of fun with it once I did.</p>
<p><a href="http://gdaeon.files.wordpress.com/2011/04/image.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;" title="Daggerfall" border="0" alt="Daggerfall" src="http://gdaeon.files.wordpress.com/2011/04/image_thumb.png?w=324&#038;h=204" width="324" height="204" /></a><a href="http://gdaeon.files.wordpress.com/2011/04/image1.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;" title="Daggerfall" border="0" alt="Daggerfall" src="http://gdaeon.files.wordpress.com/2011/04/image_thumb1.png?w=324&#038;h=204" width="324" height="204" /></a></p>
<p>To be honest, I didn’t play the game so much as I <em>played with it</em>. The scope is huge, and the dungeons were randomly generated and extremely annoying (in my opinion). Also, it was a pretty buggy game – I remember an odd glitch that seemed to be unique to my computer at the time where my character was utterly incapable of falling; I would just glide in the air if I walked off an edge. Regardless of its problems, it’s still a fun sandbox to play in for a little while.</p>
<p><a href="http://gdaeon.files.wordpress.com/2011/04/image2.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;" title="Daggerfall" border="0" alt="Daggerfall" src="http://gdaeon.files.wordpress.com/2011/04/image_thumb2.png?w=324&#038;h=204" width="324" height="204" /></a><a href="http://gdaeon.files.wordpress.com/2011/04/image3.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;" title="Daggerfall" border="0" alt="Daggerfall" src="http://gdaeon.files.wordpress.com/2011/04/image_thumb3.png?w=324&#038;h=204" width="324" height="204" /></a></p>
<p>Bethesda (the company that made Daggerfall), released the game as freeware. You can <a href="http://www.elderscrolls.com/daggerfall/">download it from here</a>. It runs pretty well in Aeon, provided you have a pretty fast machine.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/gdaeon.wordpress.com/167/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/gdaeon.wordpress.com/167/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/gdaeon.wordpress.com/167/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/gdaeon.wordpress.com/167/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/gdaeon.wordpress.com/167/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/gdaeon.wordpress.com/167/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/gdaeon.wordpress.com/167/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/gdaeon.wordpress.com/167/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/gdaeon.wordpress.com/167/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/gdaeon.wordpress.com/167/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/gdaeon.wordpress.com/167/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/gdaeon.wordpress.com/167/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/gdaeon.wordpress.com/167/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/gdaeon.wordpress.com/167/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=gdaeon.wordpress.com&amp;blog=9564223&amp;post=167&amp;subd=gdaeon&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://gdaeon.wordpress.com/2011/04/20/daggerfall/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/c159cc82496a36a427024d5b25a93fcd?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Greg</media:title>
		</media:content>

		<media:content url="http://gdaeon.files.wordpress.com/2011/04/image_thumb.png" medium="image">
			<media:title type="html">Daggerfall</media:title>
		</media:content>

		<media:content url="http://gdaeon.files.wordpress.com/2011/04/image_thumb1.png" medium="image">
			<media:title type="html">Daggerfall</media:title>
		</media:content>

		<media:content url="http://gdaeon.files.wordpress.com/2011/04/image_thumb2.png" medium="image">
			<media:title type="html">Daggerfall</media:title>
		</media:content>

		<media:content url="http://gdaeon.files.wordpress.com/2011/04/image_thumb3.png" medium="image">
			<media:title type="html">Daggerfall</media:title>
		</media:content>
	</item>
		<item>
		<title>Aeon Version 0.63</title>
		<link>http://gdaeon.wordpress.com/2011/04/20/aeon-version-0-63/</link>
		<comments>http://gdaeon.wordpress.com/2011/04/20/aeon-version-0-63/#comments</comments>
		<pubDate>Thu, 21 Apr 2011 02:31:30 +0000</pubDate>
		<dc:creator>Greg Divis</dc:creator>
				<category><![CDATA[Aeon]]></category>
		<category><![CDATA[New Version]]></category>

		<guid isPermaLink="false">https://gdaeon.wordpress.com/2011/04/20/aeon-version-0-63/</guid>
		<description><![CDATA[Finally a new build! I guess I should really stop saying I’m going to update this blog more often. I’d like to… Well, I’m sure you’ve heard all of the standard excuses already, so on to the change list: Added game port emulation for joystick support Fixed bug allowing an interrupt window after some pop [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=gdaeon.wordpress.com&amp;blog=9564223&amp;post=157&amp;subd=gdaeon&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Finally a new build! I guess I should really stop saying I’m going to update this blog more often. I’d <em>like </em>to… Well, I’m sure you’ve heard all of the standard excuses already, so on to the change list:</p>
<ul>
<li>Added game port emulation for joystick support </li>
<li>Fixed bug allowing an interrupt window after some pop ss instructions which caused random crashing </li>
<li>Fixed bug preventing SVGA from being detected in some programs </li>
<li>CD-ROM emulation is much more accurate when mounting a host drive or an iso </li>
<li>Host CD drive can now be captured </li>
<li>Minor performance improvements to a large number of instructions </li>
<li>Major performance increase for 4-plane video modes (EGA, Mode X) </li>
<li>Added support for launching commands with command.com /c </li>
<li>Fixed memory corruption issue when too many files were opened at once </li>
<li>Added &quot;Check for Updates&quot; option to Help menu </li>
</ul>
<p>I finally added joystick support! It’s not very configurable yet – just giving you access to two axes and the first 4 buttons on any standard gamepad/controller/joystick. A more sophisticated button/key mapper will be added in a future version.</p>
<p>As usual, the <a href="http://aeonemulator.net/Download">download is here</a>. I’ve redone the website as well. Hopefully most will consider this an improvement :)</p>
<p><strong>Update: </strong>There is a bug in the installer that will report the incorrect version when upgrading. You’ll have to uninstall the old version first, then the install will run correctly.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/gdaeon.wordpress.com/157/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/gdaeon.wordpress.com/157/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/gdaeon.wordpress.com/157/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/gdaeon.wordpress.com/157/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/gdaeon.wordpress.com/157/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/gdaeon.wordpress.com/157/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/gdaeon.wordpress.com/157/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/gdaeon.wordpress.com/157/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/gdaeon.wordpress.com/157/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/gdaeon.wordpress.com/157/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/gdaeon.wordpress.com/157/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/gdaeon.wordpress.com/157/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/gdaeon.wordpress.com/157/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/gdaeon.wordpress.com/157/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=gdaeon.wordpress.com&amp;blog=9564223&amp;post=157&amp;subd=gdaeon&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://gdaeon.wordpress.com/2011/04/20/aeon-version-0-63/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/c159cc82496a36a427024d5b25a93fcd?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Greg</media:title>
		</media:content>
	</item>
		<item>
		<title>Aeon Version 0.62</title>
		<link>http://gdaeon.wordpress.com/2010/11/03/aeon-version-0-62/</link>
		<comments>http://gdaeon.wordpress.com/2010/11/03/aeon-version-0-62/#comments</comments>
		<pubDate>Thu, 04 Nov 2010 02:41:53 +0000</pubDate>
		<dc:creator>Greg Divis</dc:creator>
				<category><![CDATA[Aeon]]></category>
		<category><![CDATA[New Version]]></category>

		<guid isPermaLink="false">https://gdaeon.wordpress.com/2010/11/03/aeon-version-0-62/</guid>
		<description><![CDATA[This build mainly just has some improved compatibility and a few minor performance tweaks. Here is the change list: Fixed long-standing issue with the InterruptEnable flag not always getting reset after a system call Enabled UI elements for configuring emulated hardware Fixed minor bug causing too many bytes to be loaded from exe files DOS [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=gdaeon.wordpress.com&amp;blog=9564223&amp;post=153&amp;subd=gdaeon&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>This build mainly just has some improved compatibility and a few minor performance tweaks. Here is the change list:</p>
<ul>
<li>Fixed long-standing issue with the InterruptEnable flag not always getting reset after a system call</li>
<li>Enabled UI elements for configuring emulated hardware</li>
<li>Fixed minor bug causing too many bytes to be loaded from exe files</li>
<li>DOS IOCTL Get Device Info function is more accurate and less of a hack</li>
<li>Fixed another bug with handling invalid DOS file names</li>
<li>Fixed bug preventing DOS FindFirstFile function from returning certain directory names</li>
<li>Fixed bug causing child DOS processes to sometimes inherit the wrong environment block</li>
<li>Fixed bug with some special DOS devices not being recognized (NUL, CON)</li>
<li>Improved VESA VBE 1.2 implementation</li>
<li>Partial VESA VBE 2.0 implementation</li>
<li>Added AAM instruction</li>
<li>Fixed improper Trap Gate emulation on interrupts</li>
<li>General Protection Faults are now properly raised when an invalid selector is loaded</li>
<li>Fixed stack alignment bug from an exception on a pop to segment register instruction</li>
</ul>
<p>Download it <a href="http://aeonemulator.net/download.html">here</a>. I’ll have more information on what’s to come up on the blog in the near future.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/gdaeon.wordpress.com/153/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/gdaeon.wordpress.com/153/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/gdaeon.wordpress.com/153/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/gdaeon.wordpress.com/153/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/gdaeon.wordpress.com/153/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/gdaeon.wordpress.com/153/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/gdaeon.wordpress.com/153/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/gdaeon.wordpress.com/153/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/gdaeon.wordpress.com/153/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/gdaeon.wordpress.com/153/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/gdaeon.wordpress.com/153/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/gdaeon.wordpress.com/153/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/gdaeon.wordpress.com/153/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/gdaeon.wordpress.com/153/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=gdaeon.wordpress.com&amp;blog=9564223&amp;post=153&amp;subd=gdaeon&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://gdaeon.wordpress.com/2010/11/03/aeon-version-0-62/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/c159cc82496a36a427024d5b25a93fcd?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Greg</media:title>
		</media:content>
	</item>
		<item>
		<title>October Status</title>
		<link>http://gdaeon.wordpress.com/2010/10/27/october-status/</link>
		<comments>http://gdaeon.wordpress.com/2010/10/27/october-status/#comments</comments>
		<pubDate>Thu, 28 Oct 2010 02:58:06 +0000</pubDate>
		<dc:creator>Greg Divis</dc:creator>
				<category><![CDATA[Aeon]]></category>

		<guid isPermaLink="false">https://gdaeon.wordpress.com/2010/10/27/october-status/</guid>
		<description><![CDATA[Where did the summer (and fall!) go? My last post was in July, and that was just a change list.&#160; It has been very busy for me, but I have not stopped working on Aeon &#8211; I’ve just stopped blogging about it :) I’m still a lot busier than I was last year at this [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=gdaeon.wordpress.com&amp;blog=9564223&amp;post=152&amp;subd=gdaeon&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Where did the summer (and fall!) go? My last post was in July, and that was just a change list.&#160; It has been very busy for me, but I have not stopped working on Aeon &#8211; I’ve just stopped blogging about it :)</p>
<p>I’m still a lot busier than I was last year at this time, but I’ve settled into enough of a routine now where I should be able to be able to make more time for Aeon development and blogging.&#160; I’m also going to try to keep myself on some kind of schedule so I get blog posts out more regularly.&#160; If you’re one of the few people that have read and enjoyed some of my posts, I’ll try not to disappoint.</p>
<p>I mentioned that I’ve been quietly working on Aeon.&#160; I expect to have a new build released soon (probably early next week).&#160; Until then, here’s some proof that I’ve made a few improvements:</p>
<p><a href="http://gdaeon.files.wordpress.com/2010/10/moon.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;" title="Under a Killing Moon" border="0" alt="Under a Killing Moon" src="http://gdaeon.files.wordpress.com/2010/10/moon_thumb.png?w=644&#038;h=484" width="644" height="484" /></a></p>
<p><a href="http://en.wikipedia.org/wiki/Under_a_Killing_Moon">Under a Killing Moon</a> now works, though it’s a bit slow.&#160; I’ve added some more programs to the compatibility list too, and I’ve fixed a number of long-standing bugs.&#160; As the complexity of the software I’m trying to emulate increases, the difficulty in debugging emulation errors goes up with it.&#160; Finding some of the protected mode issues was incredibly tedious.&#160; I’ll just say that I have a tremendous amount of respect for what the DOSBox guys must have gone through getting the level of compatibility it has today.</p>
<p>Going forward, I’ll be resuming the same type of posting that I did before, and also addressing some common questions I’ve been getting (where is the source code? why is it slower than DOSBox? why would I ever use this?)</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/gdaeon.wordpress.com/152/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/gdaeon.wordpress.com/152/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/gdaeon.wordpress.com/152/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/gdaeon.wordpress.com/152/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/gdaeon.wordpress.com/152/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/gdaeon.wordpress.com/152/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/gdaeon.wordpress.com/152/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/gdaeon.wordpress.com/152/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/gdaeon.wordpress.com/152/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/gdaeon.wordpress.com/152/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/gdaeon.wordpress.com/152/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/gdaeon.wordpress.com/152/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/gdaeon.wordpress.com/152/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/gdaeon.wordpress.com/152/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=gdaeon.wordpress.com&amp;blog=9564223&amp;post=152&amp;subd=gdaeon&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://gdaeon.wordpress.com/2010/10/27/october-status/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/c159cc82496a36a427024d5b25a93fcd?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Greg</media:title>
		</media:content>

		<media:content url="http://gdaeon.files.wordpress.com/2010/10/moon_thumb.png" medium="image">
			<media:title type="html">Under a Killing Moon</media:title>
		</media:content>
	</item>
		<item>
		<title>Aeon Version 0.61</title>
		<link>http://gdaeon.wordpress.com/2010/07/07/aeon-version-0-61/</link>
		<comments>http://gdaeon.wordpress.com/2010/07/07/aeon-version-0-61/#comments</comments>
		<pubDate>Thu, 08 Jul 2010 01:10:27 +0000</pubDate>
		<dc:creator>Greg Divis</dc:creator>
				<category><![CDATA[Aeon]]></category>
		<category><![CDATA[New Version]]></category>

		<guid isPermaLink="false">https://gdaeon.wordpress.com/2010/07/07/aeon-version-0-61/</guid>
		<description><![CDATA[I figured it was finally time for a new build, so here’s what’s new: Switched to .NET framework 4 Implemented x86 protected mode task switching support (Quake, CWSDPMI, C&#38;C) Fixed bug with 80-bit operand floating point instruction decoding (XCOM) Added a few missing floating point instructions Tweaked DOS emulation to get programs compiled with DJGPP [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=gdaeon.wordpress.com&amp;blog=9564223&amp;post=149&amp;subd=gdaeon&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I figured it was finally time for a new build, so here’s what’s new:</p>
<ul>
<li>Switched to .NET framework 4 </li>
<li>Implemented x86 protected mode task switching support (Quake, CWSDPMI, C&amp;C) </li>
<li>Fixed bug with 80-bit operand floating point instruction decoding (XCOM) </li>
<li>Added a few missing floating point instructions </li>
<li>Tweaked DOS emulation to get programs compiled with DJGPP working (Quake) </li>
<li>PIC now allows its base interrupt vector to be reprogrammed </li>
<li>Rewrote address decoder to improve emulation performance </li>
<li>Finally fixed issue preventing Borland&#8217;s RTM extender from working (Jazz Jackrabbit) </li>
<li>Improved Sound Blaster DSP audio, should hopefully eliminate most of the playback glitches </li>
<li>VGA LineCompare register is now properly emulated (Jazz Jackrabbit, Incredible Machine 2) </li>
<li>Implemented instruction tracing for CPU trap flag (Second Reality &#8211; at least the menu loads now) </li>
<li>Fixed bug in DOS EXE loader where maximum memory field was not respected </li>
<li>Added support for ADPCM compressed playback on Sound Blaster (Traffic Department 2192) </li>
</ul>
<p>This is pretty much a compatibility and performance update with no new application features.&#160; There’s still a lot of open issues I’m looking into, but this <em>should</em> be faster and more stable than 0.60.</p>
<p>Download <a href="http://www.aeonemulator.net/download.html">here</a>.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/gdaeon.wordpress.com/149/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/gdaeon.wordpress.com/149/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/gdaeon.wordpress.com/149/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/gdaeon.wordpress.com/149/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/gdaeon.wordpress.com/149/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/gdaeon.wordpress.com/149/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/gdaeon.wordpress.com/149/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/gdaeon.wordpress.com/149/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/gdaeon.wordpress.com/149/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/gdaeon.wordpress.com/149/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/gdaeon.wordpress.com/149/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/gdaeon.wordpress.com/149/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/gdaeon.wordpress.com/149/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/gdaeon.wordpress.com/149/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=gdaeon.wordpress.com&amp;blog=9564223&amp;post=149&amp;subd=gdaeon&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://gdaeon.wordpress.com/2010/07/07/aeon-version-0-61/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/c159cc82496a36a427024d5b25a93fcd?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Greg</media:title>
		</media:content>
	</item>
		<item>
		<title>Still Making Progress</title>
		<link>http://gdaeon.wordpress.com/2010/06/28/still-making-progress/</link>
		<comments>http://gdaeon.wordpress.com/2010/06/28/still-making-progress/#comments</comments>
		<pubDate>Tue, 29 Jun 2010 02:35:26 +0000</pubDate>
		<dc:creator>Greg Divis</dc:creator>
				<category><![CDATA[Aeon]]></category>

		<guid isPermaLink="false">https://gdaeon.wordpress.com/2010/06/28/still-making-progress/</guid>
		<description><![CDATA[Wow, it’s been a while since I’ve posted anything here.&#160; Things have been kind of crazy for me lately but I haven’t stopped working on Aeon altogether: In addition to lots of compatibility fixes, I’ve also made some significant performance improvements, including a (highly experimental) x86 –&#62; IL recompiler.&#160; There won’t be any major new [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=gdaeon.wordpress.com&amp;blog=9564223&amp;post=145&amp;subd=gdaeon&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Wow, it’s been a while since I’ve posted anything here.&#160; Things have been kind of crazy for me lately but I haven’t stopped working on Aeon altogether:</p>
<p><a href="http://gdaeon.files.wordpress.com/2010/06/image.png"><img style="display:inline;border-width:0;" class="wlDisabledImage" title="Quake" border="0" alt="Quake" src="http://gdaeon.files.wordpress.com/2010/06/image_thumb.png?w=481&#038;h=366" width="481" height="366" /></a></p>
<p> 
<p>In addition to lots of compatibility fixes, I’ve also made some significant performance improvements, including a (highly experimental) x86 –&gt; IL recompiler.&#160; There won’t be any major new features next time I post a build, but you should find that a lot of games that didn’t work before will work now, and with better performance.&#160; Oh, I’m also working on finally fixing that stupid “Speed:” emulation throttle so it isn’t completely useless on everything except 100%…</p>
<p>I’ve finally got some spare time again now at least occasionally so I’ll try to get back to posting more on this blog.&#160; No promises though…</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/gdaeon.wordpress.com/145/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/gdaeon.wordpress.com/145/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/gdaeon.wordpress.com/145/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/gdaeon.wordpress.com/145/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/gdaeon.wordpress.com/145/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/gdaeon.wordpress.com/145/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/gdaeon.wordpress.com/145/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/gdaeon.wordpress.com/145/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/gdaeon.wordpress.com/145/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/gdaeon.wordpress.com/145/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/gdaeon.wordpress.com/145/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/gdaeon.wordpress.com/145/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/gdaeon.wordpress.com/145/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/gdaeon.wordpress.com/145/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=gdaeon.wordpress.com&amp;blog=9564223&amp;post=145&amp;subd=gdaeon&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://gdaeon.wordpress.com/2010/06/28/still-making-progress/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/c159cc82496a36a427024d5b25a93fcd?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Greg</media:title>
		</media:content>

		<media:content url="http://gdaeon.files.wordpress.com/2010/06/image_thumb.png" medium="image">
			<media:title type="html">Quake</media:title>
		</media:content>
	</item>
	</channel>
</rss>
