What is an emulator?

- placeholder

Why use and create an emulator?

- placeholder

Emulation versus simulation

- placeholder

Types of emulation

When you want to emulate a system, there are a few methods you could consider using.

Interpretation

- placeholder

Dynamic recompilation

- placeholder

Static recompilation

- placeholder

High Level Emulation (HLE)?

- placeholder

How difficult is emulation?

- placeholder

So where do I start?

Well it might sound easier than it actually is. Before attempting an emulation project it is important that you understand the basic about how computer systems work and know how a CPU manages data. Another important factor is the programming language you will be using. It is not recommended to start with an emulator in order to learn a programming language.

The selection of which programming language to use depends on a few factors:

  • Do you want it to be portable?
  • Does the programming language supports working with hex and bits?
  • Does the programming language support logical operations and shift operations?
  • How complex is the target system?
  • Manageable code? (OOP)

A few popular programming/scripting languages:

  • C/C++
  • C#
  • Java
  • Python
  • Visual Basic (VB)
  • Assembly (ASM)

Common used libraries

If you think you can handle the heat, continue reading about starting your own chip8 emulation project.

References

  1. www.goldroad.co.uk (dead link)
  2. www.pj64.net/emubook (dead link)
  3. www.emudev.org :P

main.cpp: show