Home | Forums | What's new | Resources | |
FM sound |
rorirub - Nov 2, 2007 |
rorirub | Nov 2, 2007 | |||
Heres the sound ram dump from Konami MSX pack, running Antarctic Adventure. http://www.mediafire.com/?2x9o2elyxmt... Yabause displays PCM registers in the scsp debugger, but, I'm not sure if the emulator even shows FM should it come across any. Also to run the game in Yabause, you need to use the OpenGL display... software renderer crashes. |
antime | Nov 3, 2007 | |||
Look at the SSCTL bits of the sound slot registers. If the value is 0 the slot is playing PCM, if it's 1 it's generating an FM waveform. |
rorirub | Nov 3, 2007 | |||
So if I understand right, hex 0830 (0000 1000 0011 0000 bin) means its PCM. Thanks. Is there a way to directly check these registers in the yabause debugger? |
cgfm2 | Nov 3, 2007 | |||||
According to the manual, the SSCTL settings are: 0 = PCM data read from DRAM 1 = White noise 2 = All zeros (silent) 3 = Undocumented In this case wouldn't a setting of 1 just be noise? I thought to do FM sound, you loaded a basic waveform in RAM (like a sine wave) and used that as the source sample for FM processing, where a regular FM sound chip would use an internal sine wave table ROM. In this case SSCTL=0. Slightly off topic; does anyone know how MDXSL and MDYSL are used? That part of the SCSP manual is very confusing. |
antime | Nov 4, 2007 | |||
You know you may be right, I never even considered that possibility (mostly because I think it's a dumb idea - you have to carry around the table generation code and spend sample memory on something that could much easier be internally generated). In that case you have to examine the FM mixing registers to see whether FM is used or not. |
CyberWarriorX | Nov 4, 2007 | |||
I haven't spent much time testing the SSCTL modes 1-3, but as Charles has stated, mode 0 essentially applies an LFO waveform to PCM(either to pitch or amplitude). A heck of a lot of games actually use this for vibrato and tremolo effects. It wasn't until recently that I figured that this is what was causing pitch problems in yabause. Also, only triangle, square, and sawtooth waveforms work on mode 0(no noise waveform). I seem to recall SSCTL mode 1 was only usable with the noise LFO waveform. My understanding on MDXSL/MDYSL is that it selects the slot and which generation of sample to use when modulating. I'm not sure what settings correspond to what though. You'd almost have to mess around a bit. |