remmy
reenignE
I've been sitting here going over the forum and can't believe how many "How do I write an emulator?" threads I've seen. Not saying that this is bad. It's a good thing that there are a lot of ambitious people out there looking to further their knowledge about other architectures. A nice sticky topic would be great to have for people looking for this information. Letting them know that understanding a programming language isn't really what emulation is about. It's understanding the hardware. Being able to emulate another processor requires (for some... you others are just brilliant
) weeks, if not months of reading and absorbing. You can be an excellent programmer and have absolutely no idea how to emulate a system.
Some things that I would recommend:
Go to the library and check out some books on microprocessors. They can be very informative.
Once you have a good understanding of how said processor works, try some books on assembly. You'll find that converting between x86 and other architectures isn't that hard of a task once you have a good understanding of the language.
Let's face it. C/C++ are the definitive languages for emulation programming. Once again, turn to books if you do not know the language or simply need a refresher.
The internet is huge. You can find just about anything you desire. When all else fails, use it.
Look at (do not steal) other people's source code. You'll find that many emulators are documented or written cleanly enough so that understanding what each function does is a snap.
As it has been said here many times: Start simple. You have seen how easily beginners have gone from never touching C/C++, to writing a chip8 emulator.
After you have exhausted all of these resources, ask questions. A lot of the people here really enjoy helping other people learn knew things. I personally haven't seen a more helpful group of people willing to go (sometimes almost painfully) indepth to help someone out.
I for one know the benefits of having someone around that understands things that I don't, or just having them there to give you a new perspective on something that you do understand. Many, many optimizations in my code have come from my friend Paul who always seems to be able to spot those little things that I miss.
It's easy to say that you are going to create a X, but doing it is the hard part. It's in no way impossible; however you must be willing to learn and not just give up like so many others do.
Some things that I would recommend:
Go to the library and check out some books on microprocessors. They can be very informative.
Once you have a good understanding of how said processor works, try some books on assembly. You'll find that converting between x86 and other architectures isn't that hard of a task once you have a good understanding of the language.
Let's face it. C/C++ are the definitive languages for emulation programming. Once again, turn to books if you do not know the language or simply need a refresher.
The internet is huge. You can find just about anything you desire. When all else fails, use it.
Look at (do not steal) other people's source code. You'll find that many emulators are documented or written cleanly enough so that understanding what each function does is a snap.
As it has been said here many times: Start simple. You have seen how easily beginners have gone from never touching C/C++, to writing a chip8 emulator.
After you have exhausted all of these resources, ask questions. A lot of the people here really enjoy helping other people learn knew things. I personally haven't seen a more helpful group of people willing to go (sometimes almost painfully) indepth to help someone out.
I for one know the benefits of having someone around that understands things that I don't, or just having them there to give you a new perspective on something that you do understand. Many, many optimizations in my code have come from my friend Paul who always seems to be able to spot those little things that I miss.
It's easy to say that you are going to create a X, but doing it is the hard part. It's in no way impossible; however you must be willing to learn and not just give up like so many others do.