$$\newcommand{\n}{\hat{n}}\newcommand{\w}{\hat{\omega}}\newcommand{\wi}{\w_\mathrm{i}}\newcommand{\wo}{\w_\mathrm{o}}\newcommand{\wh}{\w_\mathrm{h}}\newcommand{\Li}{L_\mathrm{i}}\newcommand{\Lo}{L_\mathrm{o}}\newcommand{\Le}{L_\mathrm{e}}\newcommand{\Lr}{L_\mathrm{r}}\newcommand{\Lt}{L_\mathrm{t}}\newcommand{\O}{\mathrm{O}}\newcommand{\degrees}{{^{\large\circ}}}\newcommand{\T}{\mathsf{T}}\newcommand{\mathset}[1]{\mathbb{#1}}\newcommand{\Real}{\mathset{R}}\newcommand{\Integer}{\mathset{Z}}\newcommand{\Boolean}{\mathset{B}}\newcommand{\Complex}{\mathset{C}}\newcommand{\un}[1]{\,\mathrm{#1}}$$
home blog journal learn about

Contents

The SNES Cartridge Part 4
The SNES Cartridge Part 4
Anders Lindqvist (breakin)

So first a really really long recap. I made the ugliest cable ever:

The cable
Soldering

That's the recap.

So the day after I made the cable I continued working on the full device. It was hard work with many re-solderings required (due to bad soldering in the first place!) but I finally had this:

Full extractor, minus raspberry

Here from another angle:

Full extractor, minus raspberry #2

Just insert a raspberry pi. The raspberry wasn't used for anything special, but I needed about 5 outputs pins and 8 input pins. Some more outputs pins are hooked up but not used in my current setup. Speed is not of the essence when just extracing the ROM; I pretty much decide on what to do and when to do it!

I quickly wrote a Python program to extract the ROM. It was very exciting! Out came a bunch of exciting... zeros. Oh well back to reading on the internet. I found an excellent page with information on the behaviour of the mask rom inside the cartrdige. The Mask rom is where the data is kept and it has a number of pins (32 for the game I was working on). You can see it on the bottom left here:

Mask ROM

Basically it is what the cartridge is all about, at least for a simple cartridge like this one without support for save games. By reading and guessing I finally had a python program that actually extracted the ROM. Or extracted something. Hm. Not quite there. After reading some more I figured out the problem and I managed to get the full 1MB rom of the Super Scope 6 cartridge. I was quite happy when it worked in the emulator:

Something that made me happy

NOTE: Without a Super Scope I still can't play it, but still... Happy!

I only got 20-bits data out from the cartridge (1 MB) since I ran out of space on the breadboard. I'm going to clean up the breadboard and make a proper project page for it so that anyone who is stupid enough to solder that cable can make one for themselves!

As a side note. I found an solution partially by reading online. If I had not found that page I would probably have started figuring out which pins on the snes cartridge mapped to what pins on the mask rom. I would then have tried to find information on mask roms to see how to tickle them to get the data out!