src/emu/sound/asc.c
| r9341 | r9342 | |
| 18 | 18 | 0x807: CLOCK RATE (0 = Mac 22257 Hz, 1 = undefined, 2 = 22050 Hz, 3 = 44100 Hz) |
| 19 | 19 | 0x80a: PLAY REC A |
| 20 | 20 | 0x80f: TEST (bits 6-7 = digital test, bits 4-5 = analog test) |
| 21 | | 0x810: WAVETABLE 0 PHASE (big-endian 8.16 fixed-point, only 24 bits valid) |
| 22 | | 0x814: WAVETABLE 0 INCREMENT (big-endian 8.16 fixed-point, only 24 bits valid) |
| 21 | 0x810: WAVETABLE 0 PHASE (big-endian 9.15 fixed-point, only 24 bits valid) |
| 22 | 0x814: WAVETABLE 0 INCREMENT (big-endian 9.15 fixed-point, only 24 bits valid) |
| 23 | 23 | 0x818: WAVETABLE 1 PHASE |
| 24 | 24 | 0x81C: WAVETABLE 1 INCREMENT |
| 25 | 25 | 0x820: WAVETABLE 2 PHASE |
| r9341 | r9342 | |
| 250 | 250 | |
| 251 | 251 | if (ch < 2) |
| 252 | 252 | { |
| 253 | | smpl = (INT8)m_fifo_a[((m_phase[ch]>>16)&0x1ff) + wtoffs[ch&1]]; |
| 253 | smpl = (INT8)m_fifo_a[((m_phase[ch]>>15)&0x1ff) + wtoffs[ch&1]]; |
| 254 | 254 | } |
| 255 | 255 | else |
| 256 | 256 | { |
| 257 | | smpl = (INT8)m_fifo_b[((m_phase[ch]>>16)&0x1ff) + wtoffs[ch&1]]; |
| 257 | smpl = (INT8)m_fifo_b[((m_phase[ch]>>15)&0x1ff) + wtoffs[ch&1]]; |
| 258 | 258 | } |
| 259 | 259 | |
| 260 | 260 | smpl ^= 0x80; |
| r9341 | r9342 | |
| 490 | 490 | m_fifo_a_wrptr = m_fifo_b_wrptr = 0; |
| 491 | 491 | break; |
| 492 | 492 | |
| 493 | case R_FIFOMODE: |
| 494 | if (data & 0x80) |
| 495 | { |
| 496 | memset(m_fifo_a_wrhalf, 0, sizeof(m_fifo_a_wrhalf)); |
| 497 | memset(m_fifo_b_wrhalf, 0, sizeof(m_fifo_b_wrhalf)); |
| 498 | |
| 499 | m_fifo_a_rdptr = m_fifo_b_rdptr = 0; |
| 500 | m_fifo_a_wrptr = m_fifo_b_wrptr = 0; |
| 501 | } |
| 502 | break; |
| 503 | |
| 493 | 504 | case R_WTCONTROL: |
| 494 | 505 | // printf("One-shot wavetable %02x\n", data); |
| 495 | 506 | break; |