Welcome to! Here you will find various in-depth technical articles and resources dedicated to the development of software emulators. Please use the navigation bar above to locate specific content, or browse the newest site content additions below.

Input: Run-Ahead for Input Latency Reduction2019-10-23

A look at how run-ahead can be implemented to achieve better-than-hardware input latencies in games.

Emulator Design: Cooperative Thread Serialization2019-10-17

Solutions to the complicated issue of serializing (eg capturing save states) for cooperative threads.

Input: Latency Reduction2019-10-07

A simple technique for reducing input lag in emulation.

Emulator Design: Cooperative Threading2019-10-05

Cooperative threading can be used in emulator design to abstract away emulated processor state machines. This article looks at its pros and cons.

Advice: We Stand on the Shoulders of Giants2019-10-01

Words of inspiration for aspiring emulator developers.

Game Bugs: Super Nintendo2019-09-28

A list of SNES game bugs that occur even on original hardware. These false-positives cause trouble for emudevs who don't know about them and try to fix what isn't broken.

Compact Discs: Disc Structure2019-09-27

A look into the data that's stored on CD-ROMs, how that's encoded into CD image files, and a proposal for a more complete CD-ROM archival format.

Audio: Dynamic Rate Control2019-09-25

A powerful technique to keep both video and audio synchronized under emulation.

Cartridges: Printed Circuit Boards2019-09-15

A deep-dive into the issues facing emulators when ROM images omit vital information about the PCBs they are contained on.

Video: Color Emulation2019-09-12

A look into what goes into emulating the colors of different retro gaming screens, and why it's important.

CPU: Arithmetic Logic Units2019-08-28

Example code for emulating common processor status flags on various CPU architectures.