-
Notifications
You must be signed in to change notification settings - Fork 78
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
MSU1 Audio Support #328
MSU1 Audio Support #328
Conversation
Not sure if it met timing requirements beforehand. This is using latest framework, so I don't think that would help. |
I am trying a recompile of the master branch to see if it meets timing constraints. As I said, I didn't think it did the last time I checked. Will report back. |
@birdybro. As I suspected, the core without any MSU1 code (master) also has these timing constraint issues: Granted, the MSU1 changes would increase timing constraint violations fractionally (and they have according to your screenshot versus mine), but the problems were there prior to my work. Thoughts? |
The current master branch from mister-devel does not have the timing improvements that were done by @wickerwaka so merging won't change anything anyways. EDIT: Oh you meant the current master to compare, got it. :) Nice catch. The framework for the SNES core should probably be updated first anyways. :) |
I won't step on anyone's toes and leave the framework update to Sorg or Srg320. I also don't have much experience with timing constraint violations and fixing them. That said, I am aware there is a good chance that the MSU1 code could be optimized, and am very open to improvements. Probably some of the internal registers are on the large size. And some of the calculations (division by 4 for example) could be handled bitwise, which may mean less logic on the FPGA. For now though, I am most interested in the overall design and ensuring that it's acceptable. I'll probably work on video/datafile next without that approval. Getting the audio side of the functionality in officially is the most important part as 95 percent of MSU1 content is audio 'enhancement' only anyway. |
well, since it was hard to check changes i missed one important change which would stop me from merging. |
one more important fix should be added on both FPGA and HPS sides: if no MSU files are available for current ROM then MSU should be completely shutdown and don't reply even if its registers are selected, so it won't produce bugs in games not expecting MSU registers on bus. |
I've added MSU enable flag based on availability of pcm files for rom. It fully hides MSU. I don't have MSU ROMs for test, so hope i didn't break anything. |
It doesn't seem correct. According to here the MSU registers range from $2000-$2007 so Also is it correct that |
yeah, i had similar question but thought all MSU roms are big to fall into 96mbit range. My fix was to isolate MSU roms from all others. So i've made sure that MSU is disabled if no CD tracks are found. But how MSU is selected on MSU-enabled ROMs i don't know. It's up to original implementation |
generally speaking MSU mapper implementation doesn't follow original concept and do selections inside its own module instead of mapper. |
i've added some tweaks and fixes including better way to enable MSU1. |
First issue is Line 1149 in c31e523
Line 39 in c31e523
Second issue is Main doesn't send Here it checks for After fixing those I have music in Zelda.
Haven't touched anything about BCD format so it doesn't seem to matter. |
Line 1245 in c9c1431
|
Making commit before going to sleep probably wasn't good idea :) |
Initial pull request. Work in progress.