Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- if ((clockticks6502 - dmc.lasttick) >= (dmc.period >> 3)) {
- if (dmc.enabled) {
- if (dmc.sampleempty) {
- dmc.sampleempty = 0;
- dmc.bufferbit = 0;
- dmc.samplebuffer = readPPU(dmc.address++);
- if (dmc.address < 0x8000) dmc.address = 0x8000;
- dmc.bytesremain--;
- if (dmc.bytesremain == 0) {
- if (!dmc.loopmode) {
- dmc.enabled = 0;
- } else {
- dmc.address = (dmc.addressreg << 6) | 0xC000;
- dmc.bytesremain = (dmc.lengthreg << 4) + 1;
- }
- }
- }
- if (!dmc.sampleempty) {
- if ((dmc.samplebuffer >> (dmc.bufferbit & 7)) & 1) {
- if (channels[4] <= 0x7D) channels[4] += 2;
- } else {
- if (channels[4] >= 2) channels[4] -= 2;
- }
- if (++dmc.bufferbit == 8) {
- dmc.sampleempty = 1;
- }
- }
- } else channels[4] = 0;
- dmc.lasttick = clockticks6502 - ((clockticks6502 - dmc.lasttick) - (dmc.period >> 3));
- }
Add Comment
Please, Sign In to add comment