https://www.vogons.org/viewtopic.php?t=86257 Skip to content VOGONS [ ] Search... Search Advanced search [ ] Just this topic Search [ ] Search... Search Advanced search [ ] Just this topic --------------------------------------------------------------------- Common searches * Active topics Main menu * Login Login [ ] Username [ ] Password [ ] 2FA token (optional) [*] Remember me [ ] Hide my online status this session Log in Lost password Send activation email or Create a new account * Create a new account Breadcrumbs 1. Board index 2. Marvin, the Paranoid Android 3. Sound Common searches * Active topics --------------------------------------------------------------------- Fixing the Roland CM-500 Vibrato Bug Topic actions * Post a reply First post, by Cloudschatze Posted on 2022-02-09, 16:47 * Reply with quote * Creative Commons Attribution 4.0 International license * More actions + Reply with quote + CC-BY-4.0 license Cloudschatze's avatar Cloudschatze Offline User metadata Posts 1288 Joined 2005-06-16, 14:32 Rank Oldbie Rank Oldbie Posts 1288 Joined 2005-06-16, 14:32 In 2005, MT-32 music enthusiasts made known a discrepancy in the LFO rate of Roland's third-generation Linear Arithmetic synthesis implementation affecting both the CM-500 and CM-32LN modules, as well as the LAPC-N C-Bus boards. This errant behavior noticeably manifests as a faster vibrato rate than that produced by the first and second-generation LA products. Comparison #1: * CM-32L (MUNT) - 356KB FLAC * CM-500 - 570KB FLAC Comparison #2: * CM-32L - 821KB FLAC * CM-500 - 795KB FLAC Comparison #3: * CM-32L - 1.35MB FLAC * CM-500 - 1.33MB FLAC These findings were brought to the attention of Roland Japan, who acknowledged the behavior as being unintentional, but who were unwilling/unable to investigate it further, as the ten-year support lifecycles of the affected products had elapsed. Regrettably, but deservedly, the resulting improper playback of the CM-500 and CM-32LN modules has made them somewhat undesirable among enthusiasts, despite the allure of the former in combining both the CM-32L and SC-55 sound sources in a single device, and the battery-powered functionality of the latter. 15+ years later, there is now a solution. In 2020, the LFO discussion was revived through the efforts and advice of Sergey Mikayev, or "sergm," of MUNT renown. While an initial analysis was inconclusive, Sergey later focused on the notable MCU change introduced in the third-generation LA architecture - from the 8098 to the 80C198 - and quickly discovered probable cause in an Intel publication describing MCU upgrade considerations [1]. Of pertinence is the following passage (where 8096/80C196 = 8098/ 80C198): Intel Corporation wrote: First, some background on the 80C196 is needed. The opcode set is a true superset of the 8096, but some enhancements have been made to the peripherals and timings. The crystal is divided by 2 on the 80C196, instead of 3, as on the 8096. This means that the 80C196 running at 8 MHz will have a 250 ns state time, just like an 8096 running at 12 MHz. Sergey explained that several operations of Linear Arithmetic synthesis, including the software timers used to implement the LFO rate, are state time dependent. Since the use of a 12 MHz crystal oscillator was maintained in the third-generation LA architecture, Roland's engineers may have simply failed to account for the reduction in state time (if it was even known) when they adapted the 8098 code for use with the 80C198. The consequence, of course, is the undesirable, "faster" behaviors. In theory, this should be fixable in software, but where there are yet unknowns concerning some of the timer dependencies, the easiest solution seemed to be Intel's suggestion of simply running the MCU at 8 MHz to achieve the expected 250 ns state time. The 12 MHz -> 8 MHz crystal change was initially tested on a CM-32LN unit in mid 2021, where it became quickly apparent that MIDI communication was subsequently broken. As further explained by the Intel documentation, the MCU clock change also requires modification of the serial baud rate divisor, which, in this application, is used for MIDI I/O. Sergey identified this byte location[2], as well as two additional software timer values requiring modification, and a customized ROM binary was then written and swapped into the CM-32LN. This proved successful and behaviorally correct, and a CM-500 unit was similarly modified thereafter. Specific changes to the v1.00 CM-32LN control ROM (as also used by the CM-500 and LAPC-N) are as follows: Copy code to clipboard 10x1A8D: 1D5Fh -> 1388h 20x215C: 17h -> 0Fh 30x216D: 1D5Fh -> 1388h The attached CM32LN_MOD.IPS file can be used to patch a dump of the CM32LNv1.00 control ROM binary that has a CRC-32 value of 4A3BB4EF. Following application of the IPS patch, the ROM binary should reflect a CRC-32 value of 6E4CFF4A. (Note that control ROMs pertaining to the MT-32, CM-32L/64, LAPC-I, et al., cannot be adapted or used for this purpose.) The result...? Playback that is arguably indistinguishable from that of a CM-32L. Comparison #1: * CM-32L (MUNT) - 356KB FLAC * Modified CM-500 - 519KB FLAC Comparison #2: * CM-32L - 821KB FLAC * Modified CM-500 - 818KB FLAC Comparison #3: * CM-32L - 1.35MB FLAC * Modified CM-500 - 1.35MB FLAC The physical modification itself is fairly straightforward, but with a noteworthy caveat concerning the CM-500. Unlike the CM-32LN and LAPC-N, the LA mask ROM in the CM-500 is not socketed, and is instead soldered directly to the mainboard. This chip will need to be removed, and should generally be replaced with a 28-pin socket. If you've never desoldered a ROM chip, or lack the appropriate tools to do so, you may want to enlist the aid of someone with that experience, as the vias and traces are easily damaged. Socketing aside, only two hardware components are required: - An HC-49 style, 8 MHz crystal oscillator - Abracon 815-ABL-8-B1U or similar - A PDIP-28 style, 512 kilobit (64k x8) EPROM - AM27C512, M27C512, AT27C512R, or similar - that the patched control ROM image will need to be written to. Reference the following photos for the exact replacement locations: cm-500_s.jpg CM-500 - 8 MHz XTAL installed at X1 and a (currently unpopulated) 28-pin socket installed at IC3 --------------------------------------------------------------------- cm-32ln_s.jpg CM-32LN - 8 MHz XTAL installed at X2 and an ATMEL AT27C512R socketed at IC19 --------------------------------------------------------------------- lapc-n_s.jpg (Unmodified) LAPC-N - Original 12 MHz XTAL at X2 and original mask ROM socketed at IC36 --------------------------------------------------------------------- Feedback is welcome and encouraged. Technical References: [1] Intel Corporation, "Upgrade Path from 8096-90 to 8096BH to 80C196," AB-32, 1989 [2] Intel Corporation, 80C196KB User's Guide, 1990 Attachments * Filename CM32LN_MOD.zip File size 190 Bytes Downloads 35 downloads File license CC-BY-4.0 Last edited by Cloudschatze on 2022-02-10, 03:28. Edited 1 time in total. Reply 1 of 9, by keropi Posted on 2022-02-09, 17:06 * Reply with quote * Creative Commons Attribution 4.0 International license * More actions + Reply with quote + CC-BY-4.0 license keropi's avatar keropi Offline User metadata Posts 8698 Joined 2003-09-08, 06:45 Location Greece Rank l33t++ Rank l33t++ Posts 8698 Joined 2003-09-08, 06:45 Location Greece wow , amazing stuff I do not have a CM500 but I still enjoyed the post it is quite impressive that decades later fans fix bugs of expensive devices such as the CM500 thanks for the write-up Cloudschatze! [?] [?] PCMIDI MPU , Orpheus , Action Rewind , Megacard and MK8330 soundcard website Reply 2 of 9, by carlostex Posted on 2022-02-10, 01:16 * Reply with quote * Creative Commons Attribution 4.0 International license * More actions + Reply with quote + CC-BY-4.0 license carlostex's avatar carlostex Offline User metadata Posts 2350 Joined 2010-04-03, 21:39 Location Portugal Rank l33t Rank l33t Posts 2350 Joined 2010-04-03, 21:39 Location Portugal Oh man, i wish i had got the CM-500 when i had a chance. Great stuff! The mod is quite simple. Reply 3 of 9, by Joseph_Joestar Posted on 2022-02-10, 03:13 * Reply with quote * Creative Commons Attribution 4.0 International license * More actions + Reply with quote + CC-BY-4.0 license Joseph_Joestar Offline User metadata Posts 2498 Joined 2019-10-31, 21:14 Location Europe Rank l33t Rank l33t Posts 2498 Joined 2019-10-31, 21:14 Location Europe Thanks for this Cloudschatze. Thoroughly researched and well written. Kudos! Out of curiosity, could a fix like this be made for the SC-55 and SC-155 units with the 2.00 firmware which have that bug with the missing drums? PC#1: Pentium MMX 166 / Soyo SY-5BT / S3 Trio64V+ / Voodoo1 / OPTi 82C930 / AWE64 Gold / SC-155 PC#2: AthlonXP 1700+ / Abit KT7A / Voodoo3 / Audigy1 / Vortex2 PC#3: Athlon64 3400+ / Asus K8V-MX / 5900XT / Audigy1 PC#4: i5-3550P / MSI Z77A-G43 / GTX 650Ti / X-Fi Reply 4 of 9, by Cloudschatze Posted on 2022-02-10, 03:43 * Reply with quote * Creative Commons Attribution 4.0 International license * More actions + Reply with quote + CC-BY-4.0 license Cloudschatze's avatar Cloudschatze Offline User metadata Posts 1288 Joined 2005-06-16, 14:32 Rank Oldbie Rank Oldbie Posts 1288 Joined 2005-06-16, 14:32 Joseph_Joestar wrote on 2022-02-10, 03:13: Out of curiosity, could a fix like this be made for the SC-55 and SC-155 units with the 2.00 firmware which have that bug with the missing drums? In theory. I don't believe the SC-55 firmware has yet been disassembled to the necessary degree though. That particular behavior is almost a non-issue though; the known-applicable games that I'd mentioned in that thread are subjectively better played with a CM-32L or compatible. Reply 5 of 9, by Joseph_Joestar Posted on 2022-02-10, 09:40 * Reply with quote * Creative Commons Attribution 4.0 International license * More actions + Reply with quote + CC-BY-4.0 license Joseph_Joestar Offline User metadata Posts 2498 Joined 2019-10-31, 21:14 Location Europe Rank l33t Rank l33t Posts 2498 Joined 2019-10-31, 21:14 Location Europe Cloudschatze wrote on 2022-02-10, 03:43: That particular behavior is almost a non-issue though; the known-applicable games that I'd mentioned in that thread are subjectively better played with a CM-32L or compatible. Thanks for the clarification. I wasn't sure about the impact of that bug, but if it's as minor as it seems, then it is a very low priority issue indeed. PC#1: Pentium MMX 166 / Soyo SY-5BT / S3 Trio64V+ / Voodoo1 / OPTi 82C930 / AWE64 Gold / SC-155 PC#2: AthlonXP 1700+ / Abit KT7A / Voodoo3 / Audigy1 / Vortex2 PC#3: Athlon64 3400+ / Asus K8V-MX / 5900XT / Audigy1 PC#4: i5-3550P / MSI Z77A-G43 / GTX 650Ti / X-Fi Reply 6 of 9, by carlostex Posted on 2022-02-10, 10:21 * Reply with quote * Creative Commons Attribution 4.0 International license * More actions + Reply with quote + CC-BY-4.0 license carlostex's avatar carlostex Offline User metadata Posts 2350 Joined 2010-04-03, 21:39 Location Portugal Rank l33t Rank l33t Posts 2350 Joined 2010-04-03, 21:39 Location Portugal Wondering if one could fit the LAPC-N on a 5.25" inch bay, and use the MIDI in for a sort of a internal LAPC/CM-32L. It probably wouldn't be pretty, but with some craftmanship maybe the LAPC-N could reveal itself useful for a MS-DOS machine. Reply 7 of 9, by InbetweenDays Posted on 2022-02-11, 08:57 * Reply with quote * Creative Commons Attribution 4.0 International license * More actions + Reply with quote + CC-BY-4.0 license InbetweenDays's avatar InbetweenDays Offline User metadata Posts 96 Joined 2017-11-22, 04:40 Rank Newbie Rank Newbie Posts 96 Joined 2017-11-22, 04:40 Awesome... great work!! It don't mean a thing if it ain't got 5-pin DIN. Roland addict and founding member of the Association Of Molex Haters Reply 8 of 9, by InbetweenDays Posted on 2022-02-12, 09:55 * Reply with quote * Creative Commons Attribution 4.0 International license * More actions + Reply with quote + CC-BY-4.0 license InbetweenDays's avatar InbetweenDays Offline User metadata Posts 96 Joined 2017-11-22, 04:40 Rank Newbie Rank Newbie Posts 96 Joined 2017-11-22, 04:40 I've just finished this mod and it really is very straightforward. Taking my time with the soldering work, in total it took just under an hour - including dumping of the ROM & downloading a patching utility etc. What can I say? It's perfect. Thanks for sharing the great work! It don't mean a thing if it ain't got 5-pin DIN. Roland addict and founding member of the Association Of Molex Haters Reply 9 of 9, by Lennart Posted on 2022-02-13, 13:03 * Reply with quote * Creative Commons Attribution 4.0 International license * More actions + Reply with quote + CC-BY-4.0 license Lennart Offline User metadata Posts 105 Joined 2007-01-28, 19:24 Location The Netherlands Rank Member Rank Member Posts 105 Joined 2007-01-28, 19:24 Location The Netherlands Wow, this is really awesome! Thanks for sharing. Will definitely try out the mod some time. Go to top of page Go to top of page Back to Sound --------------------------------------------------------------------- VOGONS site design is distributed under a CC BY-NC license. User-generated content is distributed under our open content policy. (c) 2002-2022 vogons.org. Terms of use Privacy policy Contact us Close window Close window