Commit graph

14 commits

Author SHA1 Message Date
Sour
929d4dcc20 GB: Fixed APU emulation issues
-Super Mario Land 2 - Pops in menu are fixed by immediately updating APU output after a write
-Perfect Dark - Low voice volume is fixed by having the correct output when the channels are disabled (but DAC is still enabled)
-Daiku no Gen - Low voice volume is fixed by keeping square channel output to digital 0 (= analog 1) until its first tick after being enabled (the game does not let the channel tick at all while the voice sample is playing)
2025-03-21 23:03:01 +09:00
Sour
cd7e277088 GB: Refactor apu envelope code to reduce duplicated code 2024-02-01 22:53:08 +09:00
Sour
dbae841079 GB: Implemented DAC fade in/out behavior
Fixes sound issues in 3D Pocket Pool, Ready 2 Rumble Boxing and Cannon Fodder
2024-01-28 20:47:08 +09:00
Sour
a16a4e27be GB: Fixed noise channel zombie mode 2023-05-19 00:12:11 -04:00
Sour
ee287e9cad GB: Fixed/improved APU mixing/DAC logic
Fixes missing sound effects/voices in Warlocked and Alone in the Dark
2023-04-08 17:18:25 -04:00
Sour
7c51e23d25 GB: Fixed envelopes being clocked when period is 0
Based on Megaman 2 and Taiyou no Yuusha the envelopes shouldn't be ticking when period is set to 0 (otherwise the sound in these games breaks - especially the noise channel)
This seems to contradict old documentation that says a period of 0 is treated as a period of 8, but test roms don't seem to validate either behavior and this fixes the audio for both games.
2023-04-05 20:49:02 -04:00
Sour
9e2ef3c2a1 GB: Improved noise channel initial timer after being triggered
Fixes SameSuite's channel_4_delay, channel_4_equivalent_frequencies, channel_4_frequency_alignment tests
2023-03-11 01:14:17 -05:00
Sour
0881814157 GB: Length counter hitting 0 on square channel should also update output
Fixes channel_1_stop_div, channel_2_stop_div
2023-03-10 22:37:11 -05:00
Sour
965a2088e0 GB: Stop clocking channels when disabled (fixes square_1_volume_div)
+ Align square/noise channels to 1mhz clock (which allows the channel_1_align, etc. tests to work even if the channels aren't clocked while disabled)
2023-03-10 01:04:51 -05:00
Sour
af2cdb86ca GB: Noise envelope period should be 8 when period is set to 0 2023-03-10 00:24:49 -05:00
Sour
8ba69a77ec GB: Noise - Update channel output when envelope is clocked
Fixes channel_4_volume_div
2023-03-10 00:19:08 -05:00
Sour
629dfca2fc GB: Apply similar tweaks to noise/wave channels
Passes more of SameSuite's tests
2023-03-08 21:56:27 -05:00
Sour
35bcc56e7d GB: APU - Improved CGB behavior, fixes blargg's CGB tests 2023-02-27 23:08:15 -05:00
Sour
c90181c1a2 Refactoring - Moved some GB/PCE files into subfolders 2022-09-08 22:23:30 -04:00
Renamed from Core/Gameboy/GbNoiseChannel.cpp (Browse further)