Bitrot is setting in, and our digital legacy is slowly turning to dust. Efforts preserve our history are currently being undertaken numerous people around the Internet, and [Jason Scott] just got an automated CD ripper, so everything is kinda okay.
However, there is one medium that’s being overlooked. ROMs, and I don’t mean video game cartridges. In the 80s, mask ROMs were everywhere, found in everything from talking cars to synthesizers.
[Ali] bought a Korg i5m workstation from eBay a few years ago, but this unit had a problem. Luckily, he had a similar synth with the same samples stored on board. There was only one way to find out if bitrot was the cause: desoldering the chips and dumping all the information.
After fiddling around with his broken synth, [Ali] still had a problem with the sound output. Deciding the ROM chips had to be the issue, [Ali] desoldered the chips and ordered a breadboard SOP44 adapter after deciding soldering wires to each lead of the chip was a bad idea. This adapter was connected to an Arduino Mega — still the best tool for weird tasks like this — and the contents of the ROM were dumped to a PC with the help of a helpful Arduino sketch.
Dumping the ROMs took about 15 minutes, and that’s if he was able to maintain a good connection between the chip and Arduino for that long. [Ali] wrote an improved ROM reader after much trial and error, and was eventually able to get the same data out of the same chip eventually.
While the broken synth hasn’t been repaired yet, at least [Ali] has the important bits off of this antique instrument. That’s good enough for now, but [Ali] intends to take this project to completion and get those vintage samples playing out of this great old synth.
24 thoughts on “Dumping Synth ROMs And Avoiding Bitrot”
I can understand EPROMS and flash losing their data because it’s basically stored in a capacitor, but or mask programmed ROMs showing signs of age?
It’s likely that some of these are actually OTP EPROM and not antifuse or mask ROM.
Though the part number in this example is a mask ROM.
These ROMs are CMOS, but have asymmetrical output stages designed and specified for driving LSTTL logic, using them with CMOS logic without pullups or 74HCT buffers results in a poor noise margin and increased power supply noise due to aged capacitors will lead to erratic data. It seems the OP duplicated a design flaw when trying to dump these things with his Arduino.
Your point is good. I am no electronics expert but the reason I’m trying to decrease read time was to be able to read multiple times and compare until I get consistent results. In the end I think I have some consistent data and the ROM is not the problem. Removing it did not solved the issue with the noisy output if you see the post. This is a WIP and I will post as I find time on this project :)
Stored in the bottom of the dead sea? Badly sealed in their cast casings?
I haven’t heard of this either… unless a spike occurred causing more blown fuses?
EPROMS/Flash on the other hand… A bunch of E-POS keyboard-screen by some kind of ex-fujitsu turn German-company-partnership (WN) due to unstable voltage (thin wire strands in PS/2 cables) and tens of years service: becoming corrupt.
Easy fix: Write-back or re-flash works, catch: incorrect firmware wont work with new tills.
Fuse style OTP ROMs from the circa 1980ish era were prone to bitrot because the fuses would become bridged by metal ions migrating under thermal effects. Since these reconnections were high impedance they couldn’t be reblown by a programmer. This was a common problem with those devices, especially industrial devices that tended to be subject to environmental extremes and used far past normal obsolescence, in the late 80’s and early 90’s. This may be what the OP was thinking of. It’s why “OTP” ROMs from the late 80’s on were generally the same silicon as UV erasable parts, but in plastic enclosures that didn’t have the UV erase window.
But no, mask ROMs don’t have those narrow blown-fuse gaps and didn’t have the problem.
I am very impressed (as usual) with the deep knowledge of this group.
Are you a semiconductor designer?
WhenI worked at a small company called Valcom in the early 90’s, we did all of our development work on standard UV-erasable microcontrollers. For moderate production we had a gang-programmer for OTP parts. I also remember one of the master PROMs having a defect that made a batch of 50 defective controllers. At $15 each, there was a lot of arm flailing.
We have had a few high volume products that used mask ROM version of the same controller. However, a mask back in 1992 cost $7000. So you made “dang” sure the code was correct, or that your resume was up to date.
Is this a non-story? A FUD article? There is ROM suspision, and a dump in anticipation, and thats where it ends – no proof or followup?
Hmmm it’s more like a ‘Started writing thing and then guy doing dump didn’t post anymore…. might as well post what he managed (he did get a dump).
bitrot in maskroms? what the heck?
I have been repairing old computers for a while and now and then I get one where the fault is a mask ROM gone bad. Sometimes it’s just a few bits, sometimes the ROM doesn’t do anything anymore and sometimes it blocks the bus by being active all the time.
A mask ROM is hardware, it can fail at any time without warning. Remember, those plastic casings are not 100% waterproof, over the years, especially if the chip is not used, means it doesn’t get warm, moisture from the air will slowly seep in and if the passivation of the die is not 100% OK, things will go bad.
I would’ve guessed that it was a corrupted connection, rather than a failure of the ROM, but he seems to have done his homework. If static ram can fail over time/use, then perhaps the ROM chips can. I suppose that EVERYTHING has a proverbial shelf life…
Well I have had problems with Korg RAM going bad but that is usually a power supply issue (Korgs have infamously bad power supply issues-especially with the SMD era builds). The ROMs as pointed out, have usually been fairly stable minus a power supply failure that nukes the whole board from outerspace haha. I would have to speculate that with something in the era of the i5, that it was worked on before and the mobo was flexed upon rebuild. Usually there are just lemon boards though that come into this world sick and angry.
With so many companies that went the way of the ROMpler in the 90s and 00s, there are plenty of roms to dump! Sometimes one will luck out with a sysex reload (or even MFT) or find pads for a memory card that was implemented in a similar model to skip some major headache but sounds like he was thorough in his testing and results. Glad there are folks saving all these since pick n place and reflowing have come so far even in my lifetime. It is a world above reloading the poly800 with a wav file vs tape haha. Hope they keep up the good work and thank you for your hard work and time, you librarians of our time :)
Regardless of the failure mode of the rom, if the synth could not read it, what makes you think you will do any better with your homebrew reader? Or, you dump the rom but it has bad bits in it, you have a bad dump. I guess I am just not seeing any up side to this, And the synth is still dead. Seems like a lot of work for zero results.
From TFA: Luckily, he had a similar synth with the same samples stored on board.
That is kinda the whole point of the ROM repository-eat the good data while it is available from healthy chips. I get your point though with the whole “garbage in garbage out” mantra. Kinda like endangered species of animals we have to catch healthy ones and put them in a repository zoo to hopefully propagate a healthy population. As a hardware guy, I often feel like a caretaker. I am pretty sure at some point when I get older and don’t feel like opening things up, I will probably just go with software synths for simplicity’s sake. Then sell off my beasts to some younger tinkerer like myself that has stars in their eyes and excitement from even being around a vintage korg, moog, etc. But that is kinda the cycle with all things. As I referenced above, we are living in a time now that flashing roms and re-flowing/repairing smd chips are old hat and can be done by anyone with a couple hundred bucks and that can read/follow instructions and copy pasta with the rest of the crowd. Before (and even into the early 2000s) someone would know a guy that knew a guy that “may or may not still be alive” so you would have to ship your device several states over to a techy type that probably flashed different roms for an entirely different use to do it as a favor, often not learning much in the process and having to rely on limited info and expertise. Minus instagram models and n00dz the internet is a very powerful tool to keep these alive :)
maybe the homebrew reader can read slower? Or multiple times, and average the data? Just guesses, that’s how CDROM dump programs work.
I used to do that with old arcade roms. Just dump them X times, compare the binaries and find out which bytes are ‘unstable’. Often you can see that only one bit is ‘unstable’ sometimes two. And you can make an educated guess as to which value should be the one. In any case, it isolates where the bits are bad, and you can also use a disassembler to find out what the byte value should be. Or in the case of data (instead of code), just take the value that is read the most often. Averaging is never a good idea, although maybe with sound sample data, you could get away with it?
If you read the EEPROM slower and with less (or more??? don’t remember) voltage you might be able to get the content with less errors.
Can you confirm it’s LESS voltage?
Was hoping he’d say that he was using a 32 pin TSOP-II adapter, because I’ve been looking for one to read an M-Systems DiskOnChip Millennium MD2810.
If peoples are interested, I started a small vintage synth firmware dump repository to help people upgrade and repair their vintage synth. You can find it on my website at http://www.dbwbp.com/index.php/9-misc/37-synth-eprom-dumps . If people have any dumps that is not already, I would apreciate them sharing it with me so I can add it! Bitrot in memory chip is real and I have seen data get corrupted even in ROM chip so it is of high importance for people to start backing up their chips while they still can.
Please be kind and respectful to help make the comments section excellent. (Comment Policy)