Skip to content

VF priority issues #78

Description

@gulrak

Kiwi is reachable over EmuDev Discord's #resources-systems and I was pleasantly surprised that it is still updated, thank you for doing that!

I had a look, and I recognized a few issues related to the fact that in conflict of math opcode registers Vx or Vy with VF, especially VF being Vx, the result in VF should be the flag of the operation (as if no conflict occurred). It is the math result in this implementation.

There is a great test suite by Timendus at https://github.com/Timendus/chip8-test-suite and its 04-flags.ch8 will fail at a few places because of this.

There are a few smaller other issues, like Ex9E, ExA1 and Fx29 should mask the value from Vx to four bit only, to keep it safe (that behavior is actually documented in the VIP manual), and Fx0A should wait for the release of a key, but the flags issue is the most obvious and VF is a favorite register for math used to just get the flag, so it kinda matters.

Feel free to ask any questions about this here or meet us at #chip-8 on the EmuDev Discord.

PS: I can open separate issues for the masking and the key issue, if you prefer.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions