Editing Emulation books and articles

Jump to navigation Jump to search

Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.

The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then save the changes below to finish undoing the edit.
Latest revision Your text
Line 1: Line 1:
This is a nice list of some books and articles pertaining to the creation of emulators, learning how to program, what programming language might be right for you, and general reverse engineering/hacking.
 
==Books==
 
[http://amzn.com/0123704901 Computer Architecture: A Quantitative Approach] by John Hennessy and David Patterson
 
  
: The classic computer architecture textbook.
 
 
[http://amzn.com/0262640686 The Elements of Computing Systems] by Noam Nisan and Shimon Schocken
 
 
: A quick tour of an entire system, from gate logic through running user code. A bit brief, but it’s well written and has a very nice flow.
 
 
[http://amzn.com/1558609105 Virtual Machines] by James Smith and Ravi Nair
 
 
: One of the few books specifically about virtual machines, this book touches on just about every type from the JVM to system level VM’s like Xen. The balance of breadth and depth here is perfect – it’s essentially a survey of the field with enough detail about common techniques and gotchas to really help in the research process.
 
 
[http://amzn.com/0764574817 Reversing: Secrets of Reverse Engineering] by Eldad Eilam
 
 
: The book on reverse engineering. Everything one needs to learn to reverse modern, complex applications, operating systems, and file formats. Can’t recommend this book enough!
 
 
[http://amzn.com/1593272898 The IDA Pro Book] by Chris Eagle
 
 
: If you sink the money into a copy of IDA Pro, an extra bit of change for this book is well worth it to help get the most out of the tool. Covers some similar topics to Reversing, but with much more of a practical slant.
 
 
[http://amzn.com/0201914654 Hacker’s Delight] by Henry S. Warren, Jr.
 
 
: The bible of perverse math hacks. When it comes to implementing some of the more bizarre instructions in a system (bit counting/swapping, numerical conversion, rounding, etc) a lot of the tricks covered in this book can help get the extra speed required.
 
 
[http://nostarch.com/xboxfree Hacking the Xbox] by Andrew 'bunnie' Huang
 
 
: Hacking the Xbox is a great technical book for those of you who want to understand how a console is hacked from a hardware point of view. This is a great introduction to hacking in general.
 
== Articles==
 
[http://www.gamefromscratch.com/post/2011/08/04/I-want-to-be-a-game-developer.aspx I want to be a game developer... now what?] by GameFromScratch.com
 
 
: An introduction to programming languages for aspiring developers. While this article is more focused towards those interested in game development, it outlines the pros and cons of what to learn as a first language, as well as advice and recommendations on how to start learning and what books you should read.
 
 
[http://andrewkelley.me/post/jamulator.html Statically Recompiling NES Games into Native Executables with LLVM and Go] by Andrew Kelley
 
 
: Post by someone who was seeing if static recompiling was viable for emulation. Has detailed info about NES ROMs and code snippets from his emulator with explanations about how it was made. Assumes you know how to code.
 
[[Category:Recommendations]]
 

Please note that all contributions to Emulation General Wiki may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see Emulation General Wiki:Copyrights for details). Do not submit copyrighted work without permission!

To edit this page, please answer the question that appears below (more info):

Cancel Editing help (opens in new window)