Update to v082r33 release.
byuu says:
Added MMC2, MMC4, VRC4, VRC7 (no audio.)
Split NES audio code up into individual modules.
Fixed libsnes to compile: Themaister, can you please test to make sure
it works? I don't have a libsnes client on my work PC to test it.
Added about / license information to bottom of advanced settings screen
for now (better than nothing, I guess.)
Blocked PPU reads/writes while rendering for now, easier than coming up
with a bus address locking thing :/
I can't seem to fix MMC5 graphics during the intro to Uchuu Keibitai.
Without that, trying to implement vertical-split screen mode doesn't
make sense.
So as far as special audio chips go ...
* VRC6 is completed
* Sunsoft 5B has everything the only game to use it uses, but there are
more unused channels I'd like to support anyway (they aren't
documented, though.)
* MMC5 audio unsupported for now
* VRC7 audio unsupported, probably for a long time (hardest audio driver
of all. More complex than core NES APU.)
* audio PCM games (Moero Pro Yakyuu!) I probably won't ever support
(they require external WAV packs.)
2011-10-12 12:03:58 +00:00
|
|
|
void APU::Pulse::clock_length() {
|
|
|
|
if(envelope.loop_mode == 0) {
|
|
|
|
if(length_counter) length_counter--;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
uint8 APU::Pulse::clock() {
|
|
|
|
if(sweep.check_period() == false) return 0;
|
|
|
|
if(length_counter == 0) return 0;
|
|
|
|
|
2013-05-05 09:21:30 +00:00
|
|
|
static const unsigned duty_table[] = {1, 2, 4, 6};
|
Update to v082r33 release.
byuu says:
Added MMC2, MMC4, VRC4, VRC7 (no audio.)
Split NES audio code up into individual modules.
Fixed libsnes to compile: Themaister, can you please test to make sure
it works? I don't have a libsnes client on my work PC to test it.
Added about / license information to bottom of advanced settings screen
for now (better than nothing, I guess.)
Blocked PPU reads/writes while rendering for now, easier than coming up
with a bus address locking thing :/
I can't seem to fix MMC5 graphics during the intro to Uchuu Keibitai.
Without that, trying to implement vertical-split screen mode doesn't
make sense.
So as far as special audio chips go ...
* VRC6 is completed
* Sunsoft 5B has everything the only game to use it uses, but there are
more unused channels I'd like to support anyway (they aren't
documented, though.)
* MMC5 audio unsupported for now
* VRC7 audio unsupported, probably for a long time (hardest audio driver
of all. More complex than core NES APU.)
* audio PCM games (Moero Pro Yakyuu!) I probably won't ever support
(they require external WAV packs.)
2011-10-12 12:03:58 +00:00
|
|
|
uint8 result = (duty_counter < duty_table[duty]) ? envelope.volume() : 0;
|
|
|
|
if(sweep.pulse_period < 0x008) result = 0;
|
|
|
|
|
|
|
|
if(--period_counter == 0) {
|
|
|
|
period_counter = (sweep.pulse_period + 1) * 2;
|
|
|
|
duty_counter++;
|
|
|
|
}
|
|
|
|
|
|
|
|
return result;
|
|
|
|
}
|
|
|
|
|
|
|
|
void APU::Pulse::power() {
|
|
|
|
envelope.power();
|
|
|
|
sweep.power();
|
|
|
|
}
|
|
|
|
|
|
|
|
void APU::Pulse::reset() {
|
|
|
|
envelope.reset();
|
|
|
|
sweep.reset();
|
|
|
|
|
|
|
|
length_counter = 0;
|
|
|
|
|
|
|
|
duty = 0;
|
|
|
|
duty_counter = 0;
|
|
|
|
period = 0;
|
|
|
|
period_counter = 1;
|
|
|
|
}
|
|
|
|
|
2013-05-05 09:21:30 +00:00
|
|
|
void APU::Pulse::serialize(serializer& s) {
|
Update to v082r33 release.
byuu says:
Added MMC2, MMC4, VRC4, VRC7 (no audio.)
Split NES audio code up into individual modules.
Fixed libsnes to compile: Themaister, can you please test to make sure
it works? I don't have a libsnes client on my work PC to test it.
Added about / license information to bottom of advanced settings screen
for now (better than nothing, I guess.)
Blocked PPU reads/writes while rendering for now, easier than coming up
with a bus address locking thing :/
I can't seem to fix MMC5 graphics during the intro to Uchuu Keibitai.
Without that, trying to implement vertical-split screen mode doesn't
make sense.
So as far as special audio chips go ...
* VRC6 is completed
* Sunsoft 5B has everything the only game to use it uses, but there are
more unused channels I'd like to support anyway (they aren't
documented, though.)
* MMC5 audio unsupported for now
* VRC7 audio unsupported, probably for a long time (hardest audio driver
of all. More complex than core NES APU.)
* audio PCM games (Moero Pro Yakyuu!) I probably won't ever support
(they require external WAV packs.)
2011-10-12 12:03:58 +00:00
|
|
|
s.integer(length_counter);
|
|
|
|
|
|
|
|
envelope.serialize(s);
|
|
|
|
sweep.serialize(s);
|
|
|
|
|
|
|
|
s.integer(duty);
|
|
|
|
s.integer(duty_counter);
|
|
|
|
|
|
|
|
s.integer(period);
|
|
|
|
s.integer(period_counter);
|
|
|
|
}
|