Viewing Issue Advanced Details
|ID||Category [?]||Severity [?]||Reproducibility||Date Submitted||Last Update|
|01066||Sound||Minor||Have not tried||Feb 9, 2008, 08:22||May 27, 2008, 20:23|
|Tester||-Misc Reporters-||View Status||Public||Platform|
|Version||0.114u4||Fixed in Version||Build|
|Fixed in Git Commit||Github Pull Request #|
|Summary||01066: YM2203 SSG-EG inaccuracy.|
YM2203 SSG-EG inaccuracy: Seems to be emulation of YM2203 feature 'SSG-EG' has inaccuracy in MAME. We (I as programmer and some other people as hardware developers) construct some sort of sound card which uses YM2203, and I wrote software for it. For testing purposes I use some of source code from MAME, related to YM2203 emulation (to make fast tests on PC, instead of real thing).
Now listen to two attached samples - which contains short part of music and then all possible SSG-ENV types in one channel. One of these samples recorded from real thing, YM2203 @3.5 MHz, and another rendered by YM2203 emulation code from MAME. Comments in fm.c code said:
The difference (when compared to normal Envelope Generator mode) is that the resolution in Decay and Sustain phases is 4 times lower;
this results in only 256 steps instead of normal 1024.
But seems to resolution in SSG-EG mode 8 times lower, not 4. I checked that by changing adding value from 4 to 8 in strings 1147 and 1170 of fm.c, and it sounds more like true. But there still some differences with envelope stages, by now I can't figure it clearly (you can see this in samples with any audio editor).I also can provide test register array (in simply format, .GYM-like), which was used to record these samples.
|Steps To Reproduce|
|Additional Information||Posted by Shiru|
|Flags||Verified with Original|
|Affected Sets / Systems|
emulated_ym2203.mp3 (207,376 bytes) Feb 14, 2008, 17:58
real_ym2203.mp3 (245,510 bytes) Feb 14, 2008, 17:58
|There are no relationship linked to this issue.|
May 27, 2008, 20:23
|The register dump would be much appreciated .... The samples are a good base to start, but the registers would allow easy tracking of code.|