blob: 8771b4c95b630595dde726c9b16ad5f9eb7d7b51 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
#include "ultra64.h"
s32 osAiSetFrequency(u32 frequency) {
u8 bitrate;
f32 dacRateF = ((f32)osViClock / frequency) + 0.5f;
u32 dacRate = dacRateF;
if (dacRate < AI_MIN_DAC_RATE) {
return -1;
}
bitrate = (dacRate / 66);
if (bitrate > AI_MAX_BIT_RATE) {
bitrate = AI_MAX_BIT_RATE;
}
IO_WRITE(AI_DACRATE_REG, dacRate - 1);
IO_WRITE(AI_BITRATE_REG, bitrate - 1);
return osViClock / (s32)dacRate;
}
|