Guest User

Untitled

a guest
Apr 20th, 2018
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 0.89 KB | None | 0 0
  1.     if ((clockticks6502 - dmc.lasttick) >= (dmc.period >> 3)) {
  2.         if (dmc.enabled) {
  3.             if (dmc.sampleempty) {
  4.                 dmc.sampleempty = 0;
  5.                 dmc.bufferbit = 0;
  6.                 dmc.samplebuffer = readPPU(dmc.address++);
  7.                 if (dmc.address < 0x8000) dmc.address = 0x8000;
  8.                 dmc.bytesremain--;
  9.                 if (dmc.bytesremain == 0) {
  10.                     if (!dmc.loopmode) {
  11.                         dmc.enabled = 0;
  12.                     } else {
  13.                         dmc.address = (dmc.addressreg << 6) | 0xC000;
  14.                         dmc.bytesremain = (dmc.lengthreg << 4) + 1;
  15.                     }
  16.                 }
  17.             }
  18.  
  19.             if (!dmc.sampleempty) {
  20.                 if ((dmc.samplebuffer >> (dmc.bufferbit & 7)) & 1) {
  21.                     if (channels[4] <= 0x7D) channels[4] += 2;
  22.                 } else {
  23.                     if (channels[4] >= 2) channels[4] -= 2;
  24.                 }
  25.                 if (++dmc.bufferbit == 8) {
  26.                     dmc.sampleempty = 1;
  27.                 }          
  28.             }
  29.         } else channels[4] = 0;
  30.  
  31.         dmc.lasttick = clockticks6502 - ((clockticks6502 - dmc.lasttick) - (dmc.period >> 3));
  32.     }
Add Comment
Please, Sign In to add comment