You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I came across your emulator via Reddit and as it is one of the CHIP-8 implementations with more stars and thus potentially used for inspiration from newcomers, I thought I give you a heads-up on a few issues:
The 8xyn opcodes have various bugs related to VF handling. They have mainly to do with the order of setting Vx and VF. In case x is F, the flag result needs to be the result, not the result of the math operation. Also subtracting equal numbers needs no borrow, so 1 needs to be in VF for that case, but both subtraction variants only set VF only on >, not >=, giving wrong flag result on equal numbers.
Also the implementation is more of a mixture of SuperChip and CHIP-8, as the shift opcodes (shifting just VX instead of first setting VX to VY as classic and modern variants (like XO-CHIP) do it) and Fx55/Fx65 (that doesn't increment I) behave as SuperChip, not CHIP-8 but it doesn't have the SuperChip features. The inaccuracies come probably from the used technical reference that sadly has some issues. For a more correct documentation I would point for e.g. https://github.com/mattmikolay/chip-8
I didn't open single issues for each one of the problems, as I can totally understand if you don't want to work on the old project after that time, but I opened this ticket anyway, in case you are interested.
The text was updated successfully, but these errors were encountered:
Thanks for pointing these out. As you imagined, I don't know if I'll be able to work on this project again but I'm defintely leaving this issue open, as it's useful for developers referencing this project.
Thanks!
I came across your emulator via Reddit and as it is one of the CHIP-8 implementations with more stars and thus potentially used for inspiration from newcomers, I thought I give you a heads-up on a few issues:
The 8xyn opcodes have various bugs related to VF handling. They have mainly to do with the order of setting Vx and VF. In case x is F, the flag result needs to be the result, not the result of the math operation. Also subtracting equal numbers needs no borrow, so 1 needs to be in VF for that case, but both subtraction variants only set VF only on >, not >=, giving wrong flag result on equal numbers.
Also the implementation is more of a mixture of SuperChip and CHIP-8, as the shift opcodes (shifting just VX instead of first setting VX to VY as classic and modern variants (like XO-CHIP) do it) and Fx55/Fx65 (that doesn't increment I) behave as SuperChip, not CHIP-8 but it doesn't have the SuperChip features. The inaccuracies come probably from the used technical reference that sadly has some issues. For a more correct documentation I would point for e.g. https://github.com/mattmikolay/chip-8
I recommend the tests from https://github.com/Timendus/chip8-test-suite to use at least the tests up to the flags test to verify the implementation.
I didn't open single issues for each one of the problems, as I can totally understand if you don't want to work on the old project after that time, but I opened this ticket anyway, in case you are interested.
The text was updated successfully, but these errors were encountered: