You're digging through the attic when you find your old copy of Pokemon Yellow stashed away in a box. Excited, you jam it in your GameBoy and boot it up, only to find that your save file is completely gone!
This is a sad fate that plagues many old cartridge-style games. At the time these were made, flash memory had not yet come down in price, so volatile memory was used instead. Volatile memory requires a battery to retain the data, so when the juice runs out, your save is gone for good.
This is a problem that Github user sanni is aiming to fix. Sanni has developed a comprehensive device called the Cart Reader that reads these types of cartridges, and pulls the save data off of them. The Cart Reader will then store the save data on an SD card, allowing you to replace the battery in the cartridge, then safely flash your data back on, good as new. Sanni also says that the Cart Reader can pull the ROM (the actual game itself) out of the cartridge as well, so you can run it in an emulator.
The Cart Reader supports a tremendous number of cartridges, ranging from retro consoles like the NES, to classics like the GameBoy Color, to more obscure systems like the Bandai WonderSwan. If you've got a cartridge to dump, it's more than likely the Cart Reader is up to the job.
The Cart Reader is comprised of an Arduino Mega with a densely packed shield that holds all of the various cartridge connectors, an OLED display, a few control switches, and an SD card reader. A 3D printed case really pulls the project together, along with the creative way sanni mounted the display through a cutout in the PCB for a clean, framed look. Dumping a cartridge is as simple as plugging it in, navigating the UI, selecting your cartridge, and removing the SD card.
If you'd like to build your own, check the GitHub Repository for the project.