Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR fixes a number of problems with the current emulator. In general, this PR aims to bring the emulator more inline with other emulators such as Octo. This is in preparation of adding the XO-Chip Extensions to make it broadly compatible with any ROM written for Octo.
As discussed on the various Octo pages, there are several key places where the original Chip8 and Super Chip8 language specifications have diverged. This means that not all Chip8 or Super Chip8 ROMs were running correctly under the original emulator, since each developer may have used a different language specification when writing their programs. Thus, this PR introduces quirk modes, which are optional flags that can be passed to the emulator at run time to ensure the correct language behavior is used when running a given ROM.
Additional changes include: