Decode MMC3 PRG A16

This is an archive of a topic from NESdev BBS, taken in mid-October 2019 before a server upgrade.
View original topic
Decode MMC3 PRG A16
by on (#179985)
Well, I'm having a problem with a repro I'm trying to make.
The pirate board I've got is from a to The Earth donor and I'm having touble using bigger ROMs on it, no one was booting.
I tried a PRG ROM with Recca, surprisingly it boots and even plays (at least the 1st stage), but have garbled sound.
I tried to disconnect A15 from the ROM, the game did not boot.
With A15 connected I see no difference in connecting or not the A16 line to the ROM.
This lead me to suppose that the PRG's A16 line is not connected inside the epoxy blob.
I think it may not be possible or would be too complex to do, but I'll ask anyway: can the PRG ROM's A16 be decoded exernally??
I have not touched the CHR yet, but I suppose this should have the same problem.
I also tried other unconnected esternal "pins" from the epoxy blob, and got the same results or a not booting game.
Thanks in advance.
Re: Decode MMC3 PRG A16
by on (#180199)
We've previously made ways to add PRG A19 and A20 to a normal MMC3; you should be able to use something similar to repair a broken smaller-numbered address line.
Re: Decode MMC3 PRG A16
by on (#180550)
That thread is cool!!
But I really need to learn a little more, so I can understand it better, thanks!
I could just exchange this game for an original board!!
That's amazing!!
But... I'm having trouble on my repro...

The donor board is a TEROM.
I've got the extra address lines (CHR A16, PRG A15 and PRG A16) from the MMC3, it's a MMC3A, date code 8913KP.
AFAIK this board uses the JEDEC standard pinout.
I'm trying to do a Double Dragon II.

I'll try to describe what's happening:
The game boots fine, but I get just the yellow II on screen.
When I start the game, the screen keeps flashing some random colors.
If I wait enough, the demo sound starts to play and show grabled graphics.
If I press any button, the screen flashes again a little and after I'm thrown to the second demo screen.
After the demo screens, the game freezes playing the last note with the screen flashing.
I waited around 30 minutes, and I supose the game has crashed.

Am I missing something in the wiring?
Does Double Dragon II uses something special? It's the 3rd time I try to do this game's repro and run in the same issues :-(
I tried some flashes I have with Bregalad's Contra Hack, Recca and Super Mario Bros 2, Contra and Recca seemed to work fine, Super Mario 2 crashed (I think it's because I have no SRAM onboard). I think this means that the overall rewiring is correct, but I just can't understand why DD2 has these issues.

Any ideas?? I even tried to lift MMC3's pins 1 and 16, tried the game's PRG0 and PRG1...
I'm just out of ideas... :-(
Re: Decode MMC3 PRG A16
by on (#180551)
Sounds like a bad 'PROM ?
It shouldn't be even able to boot if the MMC3's fixed bank weren't working correctly.
Re: Decode MMC3 PRG A16
by on (#180552)
Thanks!!
I'll try to write another flash with this game and see what happens.
Shoul I solder back pins 1 & 16?
Does PRG0 and PRG1 makes any difference?
According to Bootgod's site, PRG1 uses MMC3A.
Well, it should be PRG0, but comparing the crc32 I've found that it's actually PRG1, at least on my romset. Weird...

Edit: tried another IC, and 2 others.
Same result :-(
This is just ODD!!
Re: Decode MMC3 PRG A16
by on (#180555)
Or maybe a rewiring mistake? I mean, the only thing that's necessarily true is that "game boots part way" means that "top 8 KiB of PRG are presented to top 8 KiB of NES CPU address space".
Re: Decode MMC3 PRG A16
by on (#180559)
So, this means A15 and A16 are correct, also the Data bus and control bus, right?
So there are 15 pins that needs to be checked. Just about half of the IC :-)
The odd thing is that I even could arrive at Recca's 1st boss (he had no mercy :cry: ) and the waterfall stage on Contra.
I'll check it right now.

I think there's some vertical lines on screen too... this means some data line on CHR is bad?
I'm really not sure, because the DD2's CHR is still soldered on the PCB.
It's really weird to see part of DD2's 1st boss on Contra's 1st boss :lol:
Re: Decode MMC3 PRG A16
by on (#180560)
Nah, it means that PRG A0-A12 (and D0-D7) are correct, and that PRG A13-A16 are high, but are not necessarily connected to the right thing. And that PRG/CE and PRG/OE are at least sometimes low, but not necessarily connected to the right thing either.
Re: Decode MMC3 PRG A16
by on (#180564)
Had checked right now.
Seems just fine.
I'm out of ideas...

Hmm the adress scheme is like the opossite as I had tought.
Could you recomend me some good readings to learn more on the subject?
Thanks.
Re: Decode MMC3 PRG A16
by on (#180579)
Well...
I found a VERY odd behaviour!!

These are the tests results I've done on a pirate test board:
PRG ROM without CHR ROM -> game don't boots.
PRG ROM with wrong CHR ROM -> same problem as I have described.
PRG ROM with proper CHR ROM -> game works fine.

This seems to confirm that there's something wrong on the board's CHR side.
I'm really not imaginating the vertical lines. But, what could be causing them?
What can be causing these glitchs?? Some kind of software protection?? Miswiring?
I still can't find what's wrong on the CHR ROM, on the original board. I tested all traces and they seem fine.
Re: Decode MMC3 PRG A16
by on (#180584)
It's possible that the game is downloading non-CHR data from CHR-ROM... (goes and looks)

Yeah, the last 12 KiB of CHR-ROM contains something other than tiles.


Anyway, if you're having problems with vertical lines in the game ... especially if they flicker ... the cartridge is probably not making good contact with all the cartridge connector pins.
Re: Decode MMC3 PRG A16
by on (#180597)
I tried to clean the contacts with an eraser, no diference.
They look pretty clean.
The lines are steady. Here are some pictures:

Attachment:
File comment: Title
20161007_183950.jpg
20161007_183950.jpg [ 628.38 KiB | Viewed 5518 times ]

Attachment:
File comment: Dificulty
20161007_184044.jpg
20161007_184044.jpg [ 1.16 MiB | Viewed 5518 times ]

Attachment:
File comment: Players
20161007_184103.jpg
20161007_184103.jpg [ 1.45 MiB | Viewed 5518 times ]


Have done continuity tests on the CHR ROM, seems fine too.
I'm out of ideas for now...
Re: Decode MMC3 PRG A16
by on (#180598)
Well, looking at your pictures, there's clearly something going on PPU/CHR D5. (e.g. the letter "I" in your screenshots is missing the center column)
Re: Decode MMC3 PRG A16
by on (#180599)
That's it!!
D5 was making the problem.
I've found that some pins on this board that some times don't do proper contact.
If I try to use a GameGenie the game works fine.
Maybe the contacts are a little thinner and are not making proper connection.
Should I put some solder on them?
Maybe the connector is begining to show it's age... GameGenie usage helps it to wear a little, I think.

Thanks man!!
You're Great!!
Re: Decode MMC3 PRG A16
by on (#180600)
Is this repeatable with other games?

If so, then it's definitely the cartridge connector. If you have a conventional NES front-loader, you could try using a tiny prying tool to make the contacts tighter again. (I just used a tiny flathead screwdriver and bent all the lower pins up a little bit. It works great now, I never need to retry an insert ... BUT I did slightly screw up one of the pins and occasionally need to fiddle with that one pin occasionally.
Re: Decode MMC3 PRG A16
by on (#180601)
Quote:
Is this repeatable with other games?

No, it happens only with this one.
That's why I'm thinking in put some solder on the contacts.
How do I say that in english? To foliate? To tin?? To stain?? :roll:

Quote:
If you have a conventional NES front-loader

No, it's a brazilian clone, just like this one.

I made some little modifications to get a better sound and image:
In the audio section I just made the circuit be mostly like the original NES, adding some resistors, capacitors and the inductor .
In the video section, I just took the transistor out of the board and soldered it straight to the PPU.
It's almost jailbar free and has no perceptible noise on the audio.
The audio is quieter, but not a big deal.
All the info for these mods are from here.
You guys are really great!! :wink:
Re: Decode MMC3 PRG A16
by on (#180602)
You certainly could put a little solder on the contact, but I'd be worried that'd eventually bend the contacts and make them worse for other games.

"to tin" wouldn't be wrong, but I'd probably just explain it long-form to prevent confusion.

Do you have a microscope or something to get a good look at the contact? I'd think you'd be able to see a difference that would cause it to fail to make contact. Maybe a cold solder joint on the ROM? Sometimes just touching things with a multimeter moves things enough to make electrical contact again.
Re: Decode MMC3 PRG A16
by on (#180604)
Well I got a magnifier similar to this one as a gift (weird history, maybe I tell later...), but I couldn't see any differences on the contacts.
Maybe I can try to take a look with a webcam.

That contact has really bitten me!!
I tested with the multimeter a dozen of times. I even plugged the board on a deactivated clone to do continuity tests.
A small piece of UTP wire behind the connector seemed to solve the issue, at least for now.
Looks like 22AWG gauge. I think I should try a thinner one, 28 maybe? A piece of 80 wire IDE cable?
I really would like a more definitive solution...

The contacts seem a little wear. Shouldn't they be golden?
They're mostly silver, I can see a little golden on them.
Maybe if I can find some conductive ink... how well would it resist to wear?

Anyway, thanks again for the help.
I was on it for a couple of days... Just felt like walking in circles.
I still need to finish that portuguese Zelda repro...
But that is the great thing to do things to yourself: no deadlines!!
The thing will be done when it's done, if done. :lol:
Re: Decode MMC3 PRG A16
by on (#180606)
Fisher wrote:
I think I should try a thinner one, 28 maybe? A piece of 80 wire IDE cable?
I'd probably play around the 30-40ga range. But reflowing solder onto the contact isn't particularly wrong. Just be careful to not do too much.

Quote:
The contacts seem a little wear. Shouldn't they be golden?
They're mostly silver, I can see a little golden on them.
Yeah, that's a little worn. "hard" gold (30ยต or so thickness) isn't directly attached to the copper PCB but instead to a layer of nickel.

Quote:
Maybe if I can find some conductive ink... how well would it resist to wear?
Abysmally, unfortunately.
Re: Decode MMC3 PRG A16
by on (#180695)
Well... even putting a gross layer of soldering did not help.
But it works fine if I put a piece of wire behind the edge connector.
Maybe I should change the connector, but for now only this game gives me this problem. Weird!!

I have patched it to have debug functions enabled.
The GameGenieGuy's program did give me some problems, so I searched a bit and figured out how to patch the code manually.
I'm posting the ips file here, in case someone is interested. It was only a single byte patched.
I used the PRG0 version, by the way.

Thanks. :beer:

Edit: It works fine with the GameGenie. I had removed the 220pf capacitor, it gave me no problem without the genie, but with it I had a strange status bar jumping problem. It was solved when I put the capacitor back. :roll: