Jump to content
IGNORED

Coding an emulator


CodeMonkey666

Recommended Posts

As someone who has written numerous emulators, here's what I suggest:

 

1. Good programming skills (as you said). Emulators are tricky to write so I don't recommend learning to program a new language and learning to write an emulator at the same time.

 

2. Technical information on the system you want to emulate. The more the better. You need to know the CPU it uses, how the IO functions work (video, audio, controllers etc) where everything is in memory, etc.

 

3. Software to run on the system. It's almost impossible to write an emulator without software to run on it, this includes "external" software from a cartridge or disk and internal BIOS software.

 

4. A strong desire and determination to do this. Emulator programming can be very frustrating at times, if you are a person who gives up on things easily, don't bother with trying to write an emulator.

 

5. A system (to emulate) that you enjoy. If you hate NES games, don't try writing an NES emulator, because you are going to be playing them a lot.

 

6. Time!

 

7. Time!

 

8. More time!

 

9. Even more time!

 

 

Once you have decided to actually go ahead with a specific system you will also need to decide how much you will write youself and how much pre-exsting code you will use. For example there are open source CPU cores avaialble for most major processors, you may want to use one of these instead of writing your own from scratch.

 

Hope this helps.

Link to comment
Share on other sites

Actually, the first thing you need to know is if someone has already written a decent emulator for your target system. In that case, it might be worth considering a different system to emulate.

 

Then you need to know everything an assembly language programmer could possibly know about the system: the CPU instruction set, where various kinds of memory are, what kinds of hardware are attached and how they are controlled, how the video modes work, etc. Then you need to acquire a few ROMs for the system, especially any internal ROMs.

 

At that point it's mostly a third-year college computer science project.

Link to comment
Share on other sites

Actually' date=' the first thing you need to know is if someone has already written a decent emulator for your target system. In that case, it might be worth considering a different system to emulate.

 

I usually don't bother mentioning this to people who say they want to write an emulator because they usually want to do it as a learning experience, not because they are really interested in the end product. There's not much out there that hasn't been emulated, but that shouldn't stop someone from writing an emulator if they want the experience of doing it.

 

Dan

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...