I used to think that emulators were deep voodoo. Then I tried making one (Game Boy, which is a modified z80 processor). Turns out the hardest part is getting sound to work. If you just want to get the instruction set to work, you just need a big array to represent the memory, map the data into the right spots (cartidge data gets put into a given location in memory, etc.), then start doing each opcode, which basically ammounts to doing some simple operation (add two numbers together and store the result in register ax, etc.).
All the data you need for this is available to the public with a few moments of quality time with Google. The Game Boy is a simple platform, so it's a good place to start. It'll give you an idea of how CPUs work, and it's probably not as hard as you think.
"There is no shame in being self-taught, only in not trying to learn in the first place." -- Atrus, Myst: The Book of D'ni.
Are you posting in the right place? Check out Where do I post X? to know for sure.
Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
<code> <a> <b> <big>
<blockquote> <br /> <dd>
<dl> <dt> <em> <font>
<h1> <h2> <h3> <h4>
<h5> <h6> <hr /> <i>
<li> <nbsp> <ol> <p>
<small> <strike> <strong>
<sub> <sup> <table>
<td> <th> <tr> <tt>
Snippets of code should be wrapped in
<code> tags not
<pre> tags. In fact, <pre>
tags should generally be avoided. If they must
be used, extreme care should be
taken to ensure that their contents do not
have long lines (<70 chars), in order to prevent
horizontal scrolling (and possible janitor
Want more info? How to link or
or How to display code and escape characters
are good places to start.