mattmikolay / chip-8

A collection of CHIP-8 programs and documentation
MIT License
306 stars 10 forks source link

part of the CHIP-8 document is wrong #1

Closed dolphin8 closed 5 years ago

dolphin8 commented 5 years ago

8XYE should work as 8XXE, the Y part is ignored. FX55 & FX65 should not change I.

you can find an emulator online http://chip8.byethost24.com, and select TICTAC game rom. if 8XYE and FX55, FX65 are implemented as in your document, this game will not work.

[https://github.com/trapexit/chip-8_documentation ](this document) is much more precise.

mattmikolay commented 5 years ago

Hi @dolphin8 — thanks for opening this issue.

Your description of these instructions is consistent with Erik Bryntse's SCHIP documentation, which contains some subtle but important differences as compared to the original implementation of CHIP-8 on the COSMAC VIP.

As mentioned in the compatibility notes of John Earnest's SCHIP documentation:

In the original Chip8, shift instructions shift VY into VX and FX55/FX65 increment i in the process of saving and restoring by the number of registers read or written. It appears that the bugs introduced by this interpreter, combined with its popularity and the wealth of SuperChip games written for it, are the root cause of a great deal of difficulty we're faced with today in writing broadly compatible Chip8 emulators.

The documentation in this repository's wiki aims to describe CHIP-8 as it was implemented on the COSMAC VIP, so the instruction set description is in fact correct. That said, I will update this document to add a note about these particular instructions.