5个不稳定版本
0.3.0 | 2020年5月10日 |
---|---|
0.2.0 | 2019年12月24日 |
0.1.2 | 2019年12月22日 |
0.1.1 | 2019年12月22日 |
0.1.0 | 2019年12月13日 |
#303 in 模拟器
用于 3 crates
325KB
9K SLoC
Olympia Engine
引擎是Gameboy模拟的核心逻辑。它在一个no_std
环境中工作,允许它在Web Assembly环境中使用。然而,它需要core
和alloc
包。如果您在使用std
环境,您可以将std
功能包含在内,以使用如Display
实现等有用的附加功能。
decoder
包用于将二进制ROM转换为可以在模拟的Gameboy中执行的内部分布。
gameboy
包包含实现Gameboy功能的逻辑。在编写本文时,这仅限于CPU。
顶层有各种模块,如instructions
和registers
,定义了在整个模拟器中使用的类型。
模拟细节
指令在decoder
包中解码。对于大多数指令,它们在decoder.rs
中的表中查找。对于更复杂的指令,表中可以注册一个解码器。然后,将运行以解码指令。请注意,在解码时,如果指令有操作数,它将存储下一个字节(字节)的值,但在执行时将再次读取以允许更改,因此存储的值主要用于反汇编使用。
依赖项
~1.3–1.7MB
~32K SLoC