Dumping Synth ROMs and Avoiding Bitrot

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.

 

FPGA Emulates NES Cart; Prototype So Cyberpunk

By now, most of us have had some experience getting ROMs from classic video games to run on new hardware. Whether that’s just on a personal computer with the keyboard as a controller, or if it’s a more refined RetrioPie in a custom-built cabinet, it has become relatively mainstream. What isn’t mainstream, however, is building custom hardware that can run classic video games on the original console (translated). The finished project looks amazing, but the prototype blows us away with it’s beauty and complexity.

[phanick]’s project is a cartridge that is able to run games on the Polish Famicon clone called the Pegasus. The games are stored on an SD card but rather than run in an emulator, an FPGA loads the ROMs and presents the data through the normal edge-connector in the cartridge slot of the console. The game is played from the retro hardware itself. It takes a few seconds to load in each ROM, but after that the Pegasus can’t tell any difference between this and an original cartridge.

The original prototype shown here was built back in 2012. Since then it’s been through a few iterations that have reduced the size. PCBs were designed and built in-house, and the latest revision also includes a 3D-printed case that is closer to the size of the original Famicon cartridges.

Even if you don’t have an interest in classic video games or emulation, the video below is worth checking out. (Be sure to turn on the subtitles if you don’t speak Polish.) [phanick] has put in a huge amount of time getting all of the details exactly right, and the level of polish shows in the final product. In fact, we’ve featured him before for building his own Famicom clone.

Continue reading “FPGA Emulates NES Cart; Prototype So Cyberpunk”

Pancake-ROM: Eat-only Memory?

You can store arbitrary data encoded in binary as a pattern of zeros and ones. What you do to get those zeros and ones is up to you. If you’re in a particularly strange mood, you could even store them as strips of chocolate on Swedish pancakes.

Oddly enough, the possibility of the pancake as digital storage medium was what originally prompted [Michael Kohn] to undertake his similar 2013 project where he encoded his name on a paper wheel. Perhaps wisely, he prototyped on a simpler medium. With that perfected, four years later, it was time to step up to Modified Swedish Pancake Technology (MSPT).

pancake_rom_bottomHighlights of the build include trying to optimize the brightness difference between chocolate and pancake. Reducing the amount of sugar in the recipe helps increase contrast by reducing caramelization, naturally. And cotton balls placed under the spinning cardboard platform can help stabilize the spinning breakfast / storage product.

Even so, [Michael] reports that it took multiple tries to get the sixteen bytes (bites?) of success in the video below. The data is stenciled onto the pancake and to our eye is quite distinct. Improvement seems to be more of an issue with better edge detection for the reflectance sensor.

Continue reading “Pancake-ROM: Eat-only Memory?”

The Gray-1, A Computer Composed Entirely Of ROM And RAM

When we learn about the internals of a microprocessor, we are shown a diagram that resembles the 8-bit devices of the 1970s. There will be an ALU, a program counter, a set of registers, and address and data line decoders. Most of us never go significantly further into the nuances of more modern processors because there is no need. All a processor needs to be is a black box, unless it has particularly sparked your interest or you are working in bare-metal assembly language.

We imagine our simple microprocessor as built from logic gates, and indeed there have been many projects on these pages that create working processors from piles of 74 series chips. But just occasionally a project comes along that reminds us there is more than one way to build a computer, and our subject today is just such a moment. [Olivier Bailleux] has created his “Gray-1”, a processor whose only active components are memory chips, both ROM and RAM.

The clever part comes with the descriptions of how the ROMs are used to recreate the different functions of the processor, through careful programming. Some functions such as registers for example use loops, in which some of the address lines are driven from the data lines to maintain the ROM at a set location. The name of the computer comes from its program counter, which counts in Gray code.

The full processor implements a RISC architecture, and there is a simulator to allow code development without a physical unit. The write-up is both comprehensive and accessible, and makes a fascinating read.

It’s safe to say this is the only processor we’ve seen with this novel approach to architecture. Some more conventional previous features though have been an effort to create a processor entirely from NAND gates, and another made from 74 logic.

Reprogramming Bluetooth Headphones for Great Justice

Like a lot of mass-produced consumer goods, it turns out that the internal workings of Bluetooth headphones are the same across a lot of different brands. One common Bluetooth module is the CSR8645, which [lorf] realized was fairly common and (more importantly) fairly easy to modify. [lorf] was able to put together a toolkit to reprogram this Bluetooth module in almost all of these headphones.

This tip comes to us from [Tigox] who has already made good use of [lorf]’s software. Using the toolkit, he was able to reprogram his own Bluetooth headphones over a USB link to his computer. After downloading and running [lorf]’s program, he was able to modify the name of the device and, more importantly, was able to adjust the behavior of the microphone’s gain which allowed him to have a much more pleasant user experience.

Additionally, the new toolkit makes it possible to flash custom ROMs to CSR Bluetooth modules. This opens up all kinds of possibilities, including the potential to use a set of inexpensive headphones for purposes other than listening to music. The button presses and microphones can be re-purposed for virtually any task imaginable. Of course, you may be able to find cheaper Bluetooth devices to repurpose, but if you just need to adjust your headphones’ settings then this hack will be more useful.

[Featured and Thumbnail Image Source by JLab Audio LLC – jlabaudio.com, CC BY-SA 4.0]

How To Add More Games to the NES Classic

The hype around the NES Classic in 2016 was huge, and as expected, units are already selling for excessively high prices on eBay. The console shipped with 30 games pre-installed, primarily first-party releases from Nintendo. But worry not — there’s now a way to add more games to your NES Classic!

Like many a good hack, this one spawned from a forum community. [madmonkey] posted on GBX.ru about their attempts to load extra games into the console. The first step is using the FEL subroutine of the Allwinner SOC’s boot ROM to dump the unit’s flash memory. From there, it’s a matter of using custom tools to inject extra game ROMs before reburning the modified image to the console. The original tool used, named hakchi, requires a Super Mario savegame placed into a particular slot to work properly, though new versions have already surfaced eliminating this requirement.

While this is only a software modification, it does come with several risks. In addition to bricking your console, virus scanners are reporting the tools as potentially dangerous. There is confusion in the community as to whether these are false positives or not. As with anything you find lurking on a forum, your mileage may vary. But if you just have to beat Battletoads for the umpteenth time, load up a VM for the install process and have at it. This Reddit thread (an expansion from the original pastebin instructions) acts as a good starting point for the brave.

Only months after release, the NES Classic is already a fertile breeding ground for hacks — last year we reported on this controller mod and how to install Linux. Video of this ROM injection hack after the break.

Continue reading “How To Add More Games to the NES Classic”

BASIC Interpreter Hidden in ESP32 Silicon

We’ve been keeping up with the ongoing software developed for the ESP32 WiFi chip, and that means a lot of flashing, hooking up random wires, and rebooting. Along the way, we stumbled on an Easter egg: the ESP32 processor has a built-in BASIC interpreter to fall back on.

That’s a cool little hack to find, but we couldn’t find some crucial functions that would have made it a lot more useful. Still, it’s great fun to play around in real-time with the chip. And you’ll absolutely get an LED blinking faster in ESP32 BASIC than you will on an Arduino!

Continue reading “BASIC Interpreter Hidden in ESP32 Silicon”