MSX Assembly Page

Yamaha YM2164 OPP

While the Yamaha SFG-01 module for the CX5M computer series contained the well-known YM2151 OPM, the SFG-05 module instead contained the YM2164 OPP chip. Although for the most part equivalent to the YM2151, there are a few differences in some of the control registers.

For the majority of functions, please refer to the YM2151 OPM application manual. Below we will describe the differences.

Differences from the OPM

Firstly, the test register. On the OPM the test register is at address 1. On the OPP, the test register is at address 9. The one officially documented function of the test register is the LFO reset function.

Secondly, timer B (CLKB). On the OPM it has a period of 1024 cycles. On the OPP it has a period of 2048 cycles. Therefore any period value set on the OPP should be shifted right by 1 bit relative to the OPM value. Since the specified period is negated, make sure to shift in a “1” into the leftmost bit when you do so.

T B (s) = ( 2048 * ( 256 - CLKB ) ) / ϕM

ϕM = 3579545 Hz

Lastly, the OPP has 8 undocumented registers at addresses 0-7. These are initialised to 10H by the SFG-05 BIOS. Their function is as of yet unknown.