Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Data processing instructions with a shift by register where rs == 15 seem to be broken #1926

Closed
wheremyfoodat opened this issue Oct 31, 2020 · 1 comment

Comments

@wheremyfoodat
Copy link

If rs == r15, the pc should still be (addr of instruction + 8), not +12.
In the .zip below, I've included a test ROM + source code for this edge case.

If the shift is by (addr of instruction + 8), the ROM displays green.
If it's +12, the ROM displays blue.
Else, it displays red.

The version of mgba I've installed displays blue, while the 3DS displays green

shift_test.zip

@endrift
Copy link
Member

endrift commented Nov 1, 2020

Good catch. Looks like I misread GBATEK a long time ago and never caught that it was a bug.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants