Quoting lftIntroducing the 9-bit pitch technique:
http://www.linusakesson.net/programming/9bitpitch/index.php
I started disassembling the Fred Gray player used in Roadrunner and came across this:
L_MICROTONE_FREQTAB
$FCE5 .byte $97,$7E,$6E,$80,$4D
$FCEA .byte $82,$32,$84,$1E,$86,$11,$88,$0C
$FCF2 .byte $8A,$0E,$8C,$18,$8E,$29,$90,$41
$FCFA .byte $92,$62,$94,$8B,$96,$BB,$98,$F4
$FD02 .byte $9A,$35,$9D,$7E,$9F,$D0,$A1,$2B
$FD0A .byte $A4,$8E,$A6,$FA,$A8,$6F,$AB,$EE
$FD12 .byte $AD,$75,$B0,$06,$B3,$A1,$B5,$45
$FD1A .byte $B8,$F3,$BA,$AC,$BD,$6E,$C0,$3A
$FD22 .byte $C3,$11,$C6,$F3,$C8,$DF,$CB,$D6
$FD2A .byte $CE,$D8,$D1,$E6,$D4,$FE,$D7,$23
$FD32 .byte $DB,$52,$DE,$8F,$E1,$D6,$E4,$2B
$FD3A .byte $E8,$8B,$EB,$F8,$EE,$72,$F2,$F9
$FD42 .byte $F5,$8C,$F9
How he uses it isn't built for speed given the LSR..BNE octave frequency adjust loop, but the above table looks like 48 microtones for one octave.//------------------------------
L_BRS_($FBB3)_($FBB6) OK
//------------------------------
$FBB3 88 DEY
$FBB4 E9 30 SBC #$30
$FBB6 B0 FB BCS L_BRS_($FBB3)_($FBB6) OK
$FBB8 18 CLC
$FBB9 69 30 ADC #$30
$FBBB 8C E0 FC STY $FCE0
$FBBE 0A ASL A
$FBBF A8 TAY
$FBC0 B9 E5 FC LDA L_MICROTONE_FREQTAB,Y
$FBC3 8D D8 FC STA $FCD8
$FBC6 C8 INY
$FBC7 B9 E5 FC LDA L_MICROTONE_FREQTAB,Y
$FBCA 8D D9 FC STA $FCD9
$FBCD AC E0 FC LDY $FCE0
$FBD0 F0 09 BEQ L_BRS_($FBDB)_($FBD0) OK
//------------------------------
L_BRS_($FBD2)_($FBD9) OK
//------------------------------
$FBD2 4E D9 FC LSR $FCD9
$FBD5 6E D8 FC ROR $FCD8
$FBD8 88 DEY
$FBD9 D0 F7 BNE L_BRS_($FBD2)_($FBD9) OK
//------------------------------
L_BRS_($FBDB)_($FBD0) OK
//------------------------------
$FBDB AD D8 FC LDA $FCD8
$FBDE 9D 00 D4 STA $D400,X // Voice 1: Frequency Control - Low-Byte
$FBE1 AD D9 FC LDA $FCD9
$FBE4 9D 01 D4 STA $D401,X // Voice 1: Frequency Control - High-Byte
$FBE7 60 RTS
I need to look into the code further as I've only just started with examining this player today, but it appears to suffice for the smooth glides he uses such as in the "That's all Folks!" tune 6 in the PSID file as there are no other writes to $D400/01 used anywhere outside of the usual SID register clearing.