header

Here are all the truth tables for the different versions/revisions of the MAD address decoder chip found in numerous Super Nintendo and Super Famicom game carts. I decided that it might be useful to share my results here for other who might want to write their own emulator or for someone that would like to implement the MAD-1 logic for a SNES hardware project of some sort. Nocash, the developper behind the famous No$GBA was trying to learn if there was any differences in behavior between the different revision so he could document them and most likely use the information for his new No$SNS emulator. As it turned out, I had access to almost all the different known revisions of the chip in various dev cart and left-over SNES cart PCB and I gladly volunteered to test them out for him. He provided me with a dumping software he coded for that purpose and the wiring diagram to dump them through the parallel port. 

MAD IC

Here's how to hook it up if you would like to try it for yourself.

 MAD-1   DB25 
1  13
2  12
3  10
4 11
5 NC
6 5V
7 19
8 20
9 8
10 7
11 6
12 5
13 4
14 3
15 2
16 15

mad1db25

I was also asked if it was possible to dump them under various voltages to simulate different scenario so I decided to build a new dumper that would let me easily change the VCC voltage and also the simulated SRAM battery voltage. It look pretty ghetto but considering I would only use the dumper a few times and would not have any user for it eve again after, I figured it was not worth trying to make it look nice. I had to later modify it to accept MAD-2 IC which ahve more pin than the regular MAD-1

MAD DUMPER FRONTMAD DUMPER BACK

 

 And here are the truth table:

MAD-1
  IN 0 IN 1 IN 2 IN 3 IN 4 IN 5 IN 6 --> OUT 0 OUT 1 OUT 2 OUT 3 OUT 4
  Addr0 Addr1 Addr2 Addr3 /ROM /MODE /RES --> /ROM0 /ROM1 /SRAM /AUX /ROM
0 0 0 0 0 0 0 0 1F 1 1 1 1 1
1 1 0 0 0 0 0 0 1F 1 1 1 1 1
2 0 1 0 0 0 0 0 1F 1 1 1 1 1
3 1 1 0 0 0 0 0 1F 1 1 1 1 1
4 0 0 1 0 0 0 0 1F 1 1 1 1 1
5 1 0 1 0 0 0 0 1F 1 1 1 1 1
6 0 1 1 0 0 0 0 1F 1 1 1 1 1
7 1 1 1 0 0 0 0 1F 1 1 1 1 1
8 0 0 0 1 0 0 0 1F 1 1 1 1 1
9 1 0 0 1 0 0 0 1F 1 1 1 1 1
0A 0 1 0 1 0 0 0 1F 1 1 1 1 1
0B 1 1 0 1 0 0 0 1F 1 1 1 1 1
0C 0 0 1 1 0 0 0 1F 1 1 1 1 1
0D 1 0 1 1 0 0 0 1F 1 1 1 1 1
0E 0 1 1 1 0 0 0 1F 1 1 1 1 1
0F 1 1 1 1 0 0 0 1F 1 1 1 1 1
10 0 0 0 0 1 0 0 1F 1 1 1 1 1
11 1 0 0 0 1 0 0 1F 1 1 1 1 1
12 0 1 0 0 1 0 0 1F 1 1 1 1 1
13 1 1 0 0 1 0 0 1F 1 1 1 1 1
14 0 0 1 0 1 0 0 1F 1 1 1 1 1
15 1 0 1 0 1 0 0 1F 1 1 1 1 1
16 0 1 1 0 1 0 0 1F 1 1 1 1 1
17 1 1 1 0 1 0 0 1F 1 1 1 1 1
18 0 0 0 1 1 0 0 1F 1 1 1 1 1
19 1 0 0 1 1 0 0 1F 1 1 1 1 1
1A 0 1 0 1 1 0 0 1F 1 1 1 1 1
1B 1 1 0 1 1 0 0 1F 1 1 1 1 1
1C 0 0 1 1 1 0 0 1F 1 1 1 1 1
1D 1 0 1 1 1 0 0 1F 1 1 1 1 1
1E 0 1 1 1 1 0 0 1F 1 1 1 1 1
1F 1 1 1 1 1 0 0 1F 1 1 1 1 1
20 0 0 0 0 0 1 0 1F 1 1 1 1 1
21 1 0 0 0 0 1 0 1F 1 1 1 1 1
22 0 1 0 0 0 1 0 1F 1 1 1 1 1
23 1 1 0 0 0 1 0 1F 1 1 1 1 1
24 0 0 1 0 0 1 0 1F 1 1 1 1 1
25 1 0 1 0 0 1 0 1F 1 1 1 1 1
26 0 1 1 0 0 1 0 1F 1 1 1 1 1
27 1 1 1 0 0 1 0 1F 1 1 1 1 1
28 0 0 0 1 0 1 0 1F 1 1 1 1 1
29 1 0 0 1 0 1 0 1F 1 1 1 1 1
2A 0 1 0 1 0 1 0 1F 1 1 1 1 1
2B 1 1 0 1 0 1 0 1F 1 1 1 1 1
2C 0 0 1 1 0 1 0 1F 1 1 1 1 1
2D 1 0 1 1 0 1 0 1F 1 1 1 1 1
2E 0 1 1 1 0 1 0 1F 1 1 1 1 1
2F 1 1 1 1 0 1 0 1F 1 1 1 1 1
30 0 0 0 0 1 1 0 1F 1 1 1 1 1
31 1 0 0 0 1 1 0 1F 1 1 1 1 1
32 0 1 0 0 1 1 0 1F 1 1 1 1 1
33 1 1 0 0 1 1 0 1F 1 1 1 1 1
34 0 0 1 0 1 1 0 1F 1 1 1 1 1
35 1 0 1 0 1 1 0 1F 1 1 1 1 1
36 0 1 1 0 1 1 0 1F 1 1 1 1 1
37 1 1 1 0 1 1 0 1F 1 1 1 1 1
38 0 0 0 1 1 1 0 1F 1 1 1 1 1
39 1 0 0 1 1 1 0 1F 1 1 1 1 1
3A 0 1 0 1 1 1 0 1F 1 1 1 1 1
3B 1 1 0 1 1 1 0 1F 1 1 1 1 1
3C 0 0 1 1 1 1 0 1F 1 1 1 1 1
3D 1 0 1 1 1 1 0 1F 1 1 1 1 1
3E 0 1 1 1 1 1 0 1F 1 1 1 1 1
3F 1 1 1 1 1 1 0 1F 1 1 1 1 1
40 0 0 0 0 0 0 1 1F 1 1 1 1 1
41 1 0 0 0 0 0 1 0E 0 1 1 1 0
42 0 1 0 0 0 0 1 1F 1 1 1 1 1
43 1 1 0 0 0 0 1 0E 0 1 1 1 0
44 0 0 1 0 0 0 1 1F 1 1 1 1 1
45 1 0 1 0 0 0 1 0D 1 0 1 1 0
46 0 1 1 0 0 0 1 1F 1 1 1 1 1
47 1 1 1 0 0 0 1 0D 1 0 1 1 0
48 0 0 0 1 0 0 1 1F 1 1 1 1 1
49 1 0 0 1 0 0 1 0E 0 1 1 1 0
4A 0 1 0 1 0 0 1 1F 1 1 1 1 1
4B 1 1 0 1 0 0 1 0E 0 1 1 1 0
4C 0 0 1 1 0 0 1 17 1 1 1 0 1
4D 1 0 1 1 0 0 1 0D 1 0 1 1 0
4E 0 1 1 1 0 0 1 1B 1 1 0 1 1
4F 1 1 1 1 0 0 1 0D 1 0 1 1 0
50 0 0 0 0 1 0 1 1F 1 1 1 1 1
51 1 0 0 0 1 0 1 1F 1 1 1 1 1
52 0 1 0 0 1 0 1 1F 1 1 1 1 1
53 1 1 0 0 1 0 1 1F 1 1 1 1 1
54 0 0 1 0 1 0 1 1F 1 1 1 1 1
55 1 0 1 0 1 0 1 1F 1 1 1 1 1
56 0 1 1 0 1 0 1 1F 1 1 1 1 1
57 1 1 1 0 1 0 1 1F 1 1 1 1 1
58 0 0 0 1 1 0 1 1F 1 1 1 1 1
59 1 0 0 1 1 0 1 1F 1 1 1 1 1
5A 0 1 0 1 1 0 1 1F 1 1 1 1 1
5B 1 1 0 1 1 0 1 1F 1 1 1 1 1
5C 0 0 1 1 1 0 1 1F 1 1 1 1 1
5D 1 0 1 1 1 0 1 1F 1 1 1 1 1
5E 0 1 1 1 1 0 1 1F 1 1 1 1 1
5F 1 1 1 1 1 0 1 1F 1 1 1 1 1
60 0 0 0 0 0 1 1 0E 0 1 1 1 0
61 1 0 0 0 0 1 1 0E 0 1 1 1 0
62 0 1 0 0 0 1 1 0E 0 1 1 1 0
63 1 1 0 0 0 1 1 0E 0 1 1 1 0
64 0 0 1 0 0 1 1 0D 1 0 1 1 0
65 1 0 1 0 0 1 1 0D 1 0 1 1 0
66 0 1 1 0 0 1 1 0D 1 0 1 1 0
67 1 1 1 0 0 1 1 0D 1 0 1 1 0
68 0 0 0 1 0 1 1 0E 0 1 1 1 0
69 1 0 0 1 0 1 1 0E 0 1 1 1 0
6A 0 1 0 1 0 1 1 0E 0 1 1 1 0
6B 1 1 0 1 0 1 1 0E 0 1 1 1 0
6C 0 0 1 1 0 1 1 0D 1 0 1 1 0
6D 1 0 1 1 0 1 1 0D 1 0 1 1 0
6E 0 1 1 1 0 1 1 0D 1 0 1 1 0
6F 1 1 1 1 0 1 1 0D 1 0 1 1 0
70 0 0 0 0 1 1 1 1F 1 1 1 1 1
71 1 0 0 0 1 1 1 1F 1 1 1 1 1
72 0 1 0 0 1 1 1 1F 1 1 1 1 1
73 1 1 0 0 1 1 1 17 1 1 1 0 1
74 0 0 1 0 1 1 1 1F 1 1 1 1 1
75 1 0 1 0 1 1 1 1F 1 1 1 1 1
76 0 1 1 0 1 1 1 1F 1 1 1 1 1
77 1 1 1 0 1 1 1 1B 1 1 0 1 1
78 0 0 0 1 1 1 1 1F 1 1 1 1 1
79 1 0 0 1 1 1 1 1F 1 1 1 1 1
7A 0 1 0 1 1 1 1 1F 1 1 1 1 1
7B 1 1 0 1 1 1 1 1F 1 1 1 1 1
7C 0 0 1 1 1 1 1 1F 1 1 1 1 1
7D 1 0 1 1 1 1 1 1F 1 1 1 1 1
7E 0 1 1 1 1 1 1 1F 1 1 1 1 1
7F 1 1 1 1 1 1 1 1F 1 1 1 1 1

If you are interested to see the result under different voltage circomstance (SRAM battery, No SRAM Battery, etc...), all the tables for all the different chip revision I had can be found in the following archive:

MAD1 Truth table MAD1_Table.rar
MAD1 parallel test program (by NOCASH) MAD1_Test_Program(by NOCASH).zip

The table for the MAD-2 revision will be made available once I find a game that use it.