5 ms·
I'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 wi
by Simucal 16y ago
I'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/