Inspired by rvemu, a RISC-V emulator implemented in Rust, this talk chose a much simpler system LR35902, to implement its emulator. The LR35902 may be unfamiliar to you, but the product that uses it, Gameboy, is well-known to everyone. The emulator we made is able to load the gb file of the classical game Tetris, and really play it.
By implementing the emulator, we can understand the structure of LR35902, including CPU, instruction set, memory layout, GPU, interrupt, and input, etc. By implementing LR35902 emulator, we can also learn how to build an emulator for RISC-V processor with similar concept inside.
Furthermore, with the support of Rust toolchain, we can easily compile the emulator into WebAssembly and run it in the browser. The talk will also show how to compile Rust into WebAssembly, and show why Rust is the best tool to develop WebAssembly.
Reference:
https://github.com/d0iasm/rvemu
https://yodalee.me/2020/12/2020_rust_gameboy/
https://yodalee.me/2021/04/2021_rust_gameboy2/
About YodaLee
Study EE in college; study Microwave in master; work as system engineer in a software company. A Rust-lover who wants to turn every project in the work into Rust. Struggling to survive in Valheim recently, the swamp is so difficult T_T.