Ricoh RF5C164 revisited

For anything related to sound (YM2612, PSG, Z80, PCM...)

Moderator: BigEvilCorporation

Post Reply
Michel Gerritse
Interested
Posts: 12
Joined: Sat Apr 25, 2020 7:25 pm
Location: The Netherlands

Ricoh RF5C164 revisited

Post by Michel Gerritse » Fri Jan 07, 2022 4:57 pm

(Not sure if this belongs here or in the SegaCD subforum)

I've been cleaning up my Ricoh RF5C68 / 164 core the other day. There are a couple of things I would like to discuss:

1. The RF5C164 can access 128KB of memory (according to the manuals), meaning the internal processing will use 17.10 fixed point instead of 16.11
Is anyone aware of a system that uses 128KB PCM RAM ? Would like to add this to my core, but I need a test system for validation.

2. There also appears to be a RF5C105 version, similar to the 64 / 164. I've been unable to find any datasheet, or rather, any information at all. Does any info exist for this model ?

3. What happens when you loop to PCM loop stop data (PCM sample = 0xFF). Will the channel stop sounding, or will it process the PCM sample and continue operation as normal ? I have yet to find a game which does this.

4. The RF5C64 outputs 10-bit data to the DAC, while the RF5C164 outputs 16-bit data. Not really significant but important to know if you want to support both models.

Chilly Willy
Very interested
Posts: 2984
Joined: Fri Aug 17, 2007 9:33 pm

Re: Ricoh RF5C164 revisited

Post by Chilly Willy » Sat Jan 08, 2022 1:00 am

3. When you hit loop marks, it makes the channel load the loop offset. If the loop offset points to loop marks, it will simply always load the loop offset forever... until you disable the channel. I do that in my SCD mod player. If a sample loops, I set the loop offset to the appropriate value. If the sample doesn't loop, I set the loop offset to the first loop mark. Remember that you should ALWAYS follow any sample with 32 loop marks so that one will be fetched regardless of the pointer increment set. Setting the loop offset to the first loop mark assures that you will loop forever regardless of the pointer increment set. While you are looping forever on loop marks, the channel generates no output since the output never changes.

Michel Gerritse
Interested
Posts: 12
Joined: Sat Apr 25, 2020 7:25 pm
Location: The Netherlands

Re: Ricoh RF5C164 revisited

Post by Michel Gerritse » Tue Jan 11, 2022 9:38 pm

Chilly Willy wrote:
Sat Jan 08, 2022 1:00 am
While you are looping forever on loop marks, the channel generates no output since the output never changes.
That basically answers the question: The loop stop sample (0xFF) will be discarded and the next channel will get updated.
If the RF5C164 wouldn't do this you would and up with a continuous positive DC offset for this channel.

Post Reply