hey guys, have a strange issue here.
Using a custom NROM board, i've been playing with different Mario 1 hacks. I've got a handful of boards, and some work perfectly, regardless of what game is on there. Others have this weird graphical distortion that I can't figure out, but no amount of resoldering or capacitors change it.
Here is a link to a video of the problem: https://dl.dropboxusercontent.com/u/328776/VID_20151031_225353_911.mp4
If I take those same chips off and place them onto another of these NROM boards the game works fine. But all boards are the same, and from the same batch from the fab house. So far I've got about 4 boards that do this, and even with me changing capacitor values higher or lower it doesn't make a difference.
The closest thing I can find that is a similar problem is from an old Powerpak article where they said a "resistor fixed the issue" but they fail to say where to put it: http://www.nesworld.com/nespowerpak.php . There is an image on there of SMB3, and the glitching looks similar, albeit not identical.
Any ideas as to what could cause that distortion, but only on some boards that should otherwise be identical? I can't figure it out... if it were faulty boards somehow, what kind of mishap could cause this distortion?EDIT : Fixed, read last post.
Wise man say - "Don't buy cheap clone chips from China, dumbass".
I think the resistor mentioned is the eight in series with the PRG data bus. See
http://www.nespowerpak.com/powerpakmod.html I don't think I've seen an explanation as to what's going on there.
In your video I'm seeing the PPU fetching the open bus value ... but very inconsistently. What's the speed rating of the 'PROMs you're using?
120ns. Using 27C64 and 27C010 eproms for chr and prg, respectively.
Didn't the PowerPak issue affect sprites only? I thought it had to do with OAM corruption.
lidnariq wrote:
What's the speed rating of the 'PROMs you're using?
Does this matter, considering that the same ROMs work on other boards?
Well pin for pin this board is for all intents and purposes the same as a Nintendo NROM board, all pins run to the same places. Just added a footprint for a 32pin prg. So I'm not sure what it could be... Does that look like voltage distortion to anyone, somehow affecting just CHR?
Some of the text is garbled, some of it isn't. That's interesting.
Here are all of the letters and numbers visible near the end of the video, arranged to match the layout you'd see in an emulator's CHR viewer and most CHR editors.
Code:
0123456789A DE
HI KLMNO R TU
W Y
I noticed that only the letters in the middle row are visible, and the rest are garbled. Apparently the issue is somewhat dependent on the address.
Joe wrote:
Some of the text is garbled, some of it isn't. That's interesting.
Here are all of the letters and numbers visible near the end of the video, arranged to match the layout you'd see in an emulator's CHR viewer and most CHR editors.
Code:
0123456789A DE
HI KLMNO R TU
W Y
I noticed that only the letters in the middle row are visible, and the rest are garbled. Apparently the issue is somewhat dependent on the address.
So what are some things I can try to resolve this if it's an addressing issue on the PPU?
It's hard to imagine it being anything other than some defective boards, which could be shorts, micro-shorts, or open circuit. Or a bad NES connector and you've been extremely (un)lucky.
You can check for opens by doing a continuity test, from the edge to the IC pin. If the glitches seem to change over time, I would lean towards this theory. For a short, you could do a continuity test from every pin to every other pin (not as hard as it sounds, touch the lead to one pin, then run it across all the other pins, repeat for the next pin). For a micro-short I'm not sure, maybe it could have some resistance so I really don't know if continuity check would do it. You would see some measurable resistance where it should be infinite.
In the past I've had micro-shorts on prototype PCBs (manufacturer re-did them for free), and some other failed boards during a larger order, they replaced the whole order. For my GTROM production board I went ahead and paid for the electrical testing, I've tested hundreds of them myself and have had zero board problems.
Really weird problem though, let us know if you find anything out.
Got it figured out!
Turns out that it was the "M27C64A" chips I was using. I use quotations because they were NOT actually 27C64 chips. They were actually Fairchild NMC27C256 chips....re-branded. I guess that's what happens when you buy from China on eBay... /sigh.
I found that the data was being written to only the top 8KB of the chip, leaving the bottom of the chip empty. So whenever the system tried to read the bottom bits it would receive garbage data, crashing the CHR. So the fix was to tie the upper address lines to VCC.
I never figured this would be the case, and my GQ-4X programmer didn't allow ID checking for this kind of chip. However, my Superpro does an ID check, and that's what made things click together
On the bright side, you ended up with (techinically) a better chip!