Skip to content

Instantly share code, notes, and snippets.

@VelocityRa
Last active May 11, 2024 23:07
Show Gist options
  • Save VelocityRa/3b658164b17b5c3f0a34acd675c27c64 to your computer and use it in GitHub Desktop.
Save VelocityRa/3b658164b17b5c3f0a34acd675c27c64 to your computer and use it in GitHub Desktop.
Content mirror of the EmuDev Discord's `#resources-general` channel

General Resources

Most people start with a CHIP-8 emulator. As with any system, see #resources-systems to get started. Note: A great guide that still keeps it challenging is https://tobiasvl.github.io/blog/write-a-chip-8-emulator/.

After that, you can pretty much move to whatever system you want to. You don't have to "work your way up" to it as many seem to think (relevant opinionated thread here: https://goo.gl/CAvrd4). Just make sure you have the basics down first, study the source code of existing emulators (super important) and if you get stuck, ask questions here or in the subreddit. If you contribute to a project that has its own community/resources, you should probably prioritize that.

Explanations for some terms you might come across: (for more info, look at source code of existing emulators, or ask others)

HLE vs LLE (High Level Emulation vs Low Level Emulation)

CPU emulation, cached interpeters, dynarecs/JITs and AOTs (Just-In-Time and Ahead-of-Time compilers)

JIT/AOT:

fastmem (Fast memory accesses using host MMU)

Software Rasterization (for emulating 3D systems)

Audio

FPGAs

Integrated Circuits


Reverse Engineering

Note: If you're new here, scroll up to the top!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment