ivan-pi / fc8

Fortran CHIP-8 interpreter
GNU General Public License v3.0
7 stars 1 forks source link

Quirks #7

Open ivan-pi opened 1 year ago

ivan-pi commented 1 year ago

Over the years, CHIP-8 emulators have accumulated different "quirks" or differences in the way certain instructions are supposed to behave.

More information is available at:

We could introduce a bitmask or individual flags for the quirks which are checked at runtime in each emulator cycle, or we could implement different sub-interpreters (e.g. classic CHIP8, S-CHIP, XO-CHIP, etc.). The performance penalty should be negligible thanks to CPU branch predictors.

Sketch (taken from here):

type :: quirks
    logical :: VfReset
    logical :: Memory
    logical :: DisplayBlank
    logical :: Clipping
    logical :: Shifting
    logical :: Jumping
end type
ivan-pi commented 1 year ago

A related project to document the quirks of different games out in the wild is found here: https://github.com/chip-8/chip-8-database