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

@wheremyfoodat wheremyfoodat commented Oct 31, 2020

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 endrift commented Nov 1, 2020

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

@endrift endrift closed this in a53b01b Nov 1, 2020
endrift added a commit that referenced this issue Nov 5, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Linked pull requests

Successfully merging a pull request may close this issue.

None yet
2 participants