4 ms·
I asked this question. I've been studying and working on emulators since then. Another good resource if you are interested in this sort of thing is Victor Bar
by Simucal 16y ago
I asked this question. I've been studying and working on emulators since then.
Another good resource if you are interested in this sort of thing is Victor Barrio's thesis he wrote on the subject of emulation techniques (148pg - PDF): http://db.tt/dUJwwR http://db.tt/dUJwwR
It provides a good overview to get you started.
- palish 16y agoIt looks like you asked this question about a year ago -- since then, what have you done with emulators? (Just curious.) Did you find it easy / hard to get started?
- Simucal 16y agoI'm at my college graduation ceremony right now replying on my phone, so bear with me. I'll try to expand on my posts when I get home. I didn't do anything with the information from this question for several months after asking it. Then, at a university programming competition one of the problem sets included a problem on implementing a simple virtual machine and interpretting a set of instructions. My team solved the problem in about 1.5 hours and it gave me a renewed interest in writing a game emulator. I also spend a lot of time studying reverse engineering which is somewhat related. I decided to write an NES emulator as my first serious attempt. Emulating the processor in my opinion is one of the easier tasks and I was able to bang it out in a couple weekends. Now I'm focusing on the graphics and sound systems and these take a little more effort. Also, emulating the system timing of the original CPU is a key consideration as well. I only wish I could somehow turn my emulator / reverse engineering hobbies into a career. I find the work much more rewarding than the typical software shop crud apps.
- tptacek 16y agoWant a job? (or, more generally: you have an extremely valuable skill set).
- palish 16y agoHeh. I'll save him the trouble of replying on his phone -- the only logical response is "Doing what?"
- tptacek 16y agoWe do software security. If I could carve out a job description that mostly involved analyzing and writing runtimes, I would do that. The best I can say off the top of my head is, "we get projects where being able to throw together an emulator in a high-level language inside of a billable week is very useful." If you want me to be specific: automated runtime-level analysis of subroutines for embedded and smartphone platforms, analysis and design of secure sandboxes for software and content protection, semi-automated generation of fuzzers for protocols from stimulus-response tests and bblock-level analysis, and, of course, reverse engineering in general.
- JeanPierre 16y agoThis is what makes Hacker News so interesting and cool: Replies like these are actually serious. I would guess that whenever you hire someone in this way you find someone who fits the job perfectly. It's a win-win situation for everyone.
- timthorn 16y agoThere are several open places at ARM, for example: http://careers.peopleclick.com/careerscp/client_arm/external/en-us/rssfeed.do?functionName=viewFromLink&jobPostId=2309&localeCode=en-us&rssFeedId=43004 http://careers.peopleclick.com/careerscp/client_arm/external...
- SingAlong 16y agoHey, if you aren't going to commercialize your emulator, do you mind putting the source up somewhere for free or atleast writing some article about CPU emulation. I understood how to read and decode the opcodes. But the CPU emulation is what still makes me ponder
- bit 16y agoYou can read about how I wrote (an incomplete) Gameboy emulator in Haskell here: http://mutantlemon.nfshost.com/omegagb/devlog http://mutantlemon.nfshost.com/omegagb/devlog Screenshots of the emulator and full haskell source code here: http://mutantlemon.nfshost.com/omegagb/ http://mutantlemon.nfshost.com/omegagb/
- daeken 16y agoHey Simucal. I'm the Cody Brocious that answered this, and as much as I love this question, it pains me to see it. I edited it so much, it went into community wiki, before it even had 10 upvotes ;) But for the record, I'm about 1/4 of the way through a book on emulator development, and I'm currently in preliminary talks with one of the bigger names in tech publishing about getting it out there. Not nearly enough resources on emulation these days. Edit: I've created a poll to gauge interest for such a book, as I've previously believed strongly that the market is very small. Feedback would be greatly appreciated.
- fuzzythinker 16y agoDon't see link to your poll, so I up voted you. Both this thread's karma and the stackoverflow's should give you a litter indication of people's interest.