In this talk we will see how the heart of a Gameboy works by analysing a the 8-bit microprocessor (Sharp LR35902) and consolidate this knowledge into writing an emulator for the Web with WebAssembly.
An emulator typically enables the host system to run software or use peripheral devices designed for the guest system. Emulation refers to the ability of a computer program in an electronic device to emulate (or imitate) another program or device. In the case of the Gameboy most of the work involves dealing with 8-bit buses around (a variant of) the Z80 CPU. The Gameboy CPU is a hybrid between the Intel 8080 and the Zilog Z80.
This talk will not address each single CPU instruction but give an overview of the architecture that allows you to write your own Gameboy emulator with Rust and WASM.