202215 Jan

Street Fighter II, Sound System internals


As long as you are good with reading C++ and large codebase, the CPS-1 is partially documented in Mame thanks to the thousands of hours unsung heroes dedicated to following bus lines. Since the graphic ASICs (CPS-A and CPS-B) are emulated by Mame, their command format and registers purpose are well documented ( ) although I cannot imagine the amount of work it took Paul Leaman[1] back in 1998 to figure it all out. The structure of the ROM is fairly simple with an index of 127 entries giving the start and end offset to an ADPCM stream. If the OKI has its own CLK and ROM on a local bus which requires only an ID to trigger sample playback, the YM2151 needs to constantly be fed notes for each instrument at a regular interval. The sound effect we hear in the contestant selection screen when moving the cursor is not a sample coming from the OKI but an instrument rendered by the YM2151!

Source: Fabiensanglard