-
Notifications
You must be signed in to change notification settings - Fork 43
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
Gen 3 Pokemon Inaccurate healing Sound Effect #142
Comments
What is your core version? Latest? |
Yes the one released a few days ago, though it's always seemed to have the issue |
How did you record from GB? |
Via the headphone out, recording software was audacity, but the sound is clearly different even if you were to listen by yourself no matter if it was headphone or speaker |
Sounds like the duty cycle is wrong. This sound effect happens on PSG channel 1. |
the march 17th build didn't fix this |
the mGBA emulator had the same sound glitch reported by me but was fixed today, any ideas on how to implement something similar? mgba-emu/mgba#3086 |
Yes, looks possible to implement. Best would be for me: loading savestate -> press a -> sound happens. Sorry, I'm very bad at hearing these differences, so i must be sure I'm researching the right thing. |
savestates.zip |
TLDR: not fixed yet. Explanation below. So the sound effect consists of 3 independent parts. Each part is starting with a frequency and then ramps it up using the sweep functionality. I found a mistake in the code in that the freuency register is updated, even when only the lower 8 bit are written and even if the "Start" bit (initial) is not set, so I changed it. |
The sound test in the debug rom is great for debugging. The game writes to the upper bits of the frequency in NR14 after the sweep has already increased the frequency. The expected behavior seems to be that the new frequency is the new upper written bits with the Sweep increased lower bits. The current core behavior is that Sweep does not update the frequency in NR13/14 so when it reloads Here are the changes that I made based on your above changes: When the CPU writes to the frequency it updates the lower or upper bits of I changed the frequency counter a bit. Instead of counting from 0 to (2048 - |
Great find, thank you so much! Are you going to start a pull request from it? |
Sure, do I need to change anything for save states? |
The soundchannel is not saved anyway in savestates, so the count up/down change does not matter there. Only the register values are saved, but the savestate loading bus will set all byte enables, so it should be ok as far as I see it. |
As title says the sound effect for using a healing item like potions in a Gen 3 Pokemon game is inaccurate compared to real hardware, MiSTer audio was tested on both HDMI and IO board.
Sound effect comparison.zip
The text was updated successfully, but these errors were encountered: