-
Notifications
You must be signed in to change notification settings - Fork 253
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
Update PI DMA alignment as per CEN64 #868
Conversation
dddfe87
to
809b015
Compare
Thanks for the hard work. The code is clean, thanks for this! I can merge this because I suspect no-one will have the required knowledge to validate this and the scope of this flag seems to be limited. EDIT: I saw some force pushes, tell me when you think the PR is ready for merge. :) |
Yeah it's ready now, I don't plan on making any further changes |
Actually hold on for a little bit. @rasky did some hardware tests to figure out how to get the test ROM and AI Shougi 3 working |
Haha! :) No worry! |
46698ac
to
a83bcd1
Compare
Ok I'm happy with this now. The test ROM passes at the same level as CEN64, AI Shougi works. I also tested other games I know that have specific PI alignment requirements (like command & conquer and taz express). Everything seems to be working normally. This work was based on hardware tests done by @rasky: As well as tests previously documented here: https://n64brew.dev/wiki/Peripheral_Interface#Unaligned_DMA_transfer |
Thanks for the hard work! I don't know how the compatibility situation is but can you just convert the |
ok done |
Thanks! :) |
This caused a regression for 64DD for me. |
No problem, I'll fix this and submit a new pr |
Thanks, if you read discord, my suspicion rn is the
condition for the if(dd) stuff at end of pi event. |
Forgot to add, as far i can tell from the talks with luigi, we can consider the end of pi dma event stuff for DD a hack. So feel free to rework as you see fit. |
Taken from: https://github.com/n64dev/cen64/blob/master/pi/controller.c
Tested using: https://github.com/PeterLemon/N64/tree/master/CPUTest/DMAAlignment-PI-cart
Before:
After:
There are still 2 tests that fail here that pass on CEN64: n64dev/cen64#200. However, I couldn't get those tests to pass without breaking the graphics in AI Shougi 3, so I left it at the point where AI Shougi 3 would work. AI Shougi 3 graphics are messed up in CEN64, so I assume there is still more work to be done on their implementation.