Fixing Chinese SMB2J

Discuss hardware-related topics, such as development cartridges, CopyNES, PowerPak, EPROMs, or whatever.

Moderator: Moderators

Post Reply
User avatar
krzysiobal
Posts: 1037
Joined: Sun Jun 12, 2011 12:06 pm
Location: Poland
Contact:

Fixing Chinese SMB2J

Post by krzysiobal »

I remember Ben Boldt talking about his newly actquired SMB2 Lost Levels cartridge, which was not working. Now I got five of them and none of them worked as well, so I become a little bit suspicious. I suspected them game to be loopy's SMB2J port from FDS to MMC3.
Image

The PCB looks overally quite elegant - there are place to solder PRG/CHR RAM/ROM, battery, mapper blob and a lot of jumpers underneath.
Image Image Image

After analysing the pinout of blob, it turned out to be exactly AX5202P but with few more pins added in between.
* CPU-A12, CPU-A2, CPU-A1
* PRG-A19 (?),
* CHR-A19 (?), CHR-A18 (?),
* VBAT, WRAM-VCC (just like in MMC5),
* some unknown signal going to jumper with VCC (closed),
* three unknown signals, each of them going to jumper with PPU-A13 (each of them is open),

There are a few more jumpers (each is open),
* connecting PRG-A14/A13 to CPU-A14/13,
* connecting CHR-A12/11/10 to PPU-A12/11/10,
* connecting CIRA-A10 to PPU-A11/10
Sounds like a simply way for NROM game without even adding mapper-blob.

-

Firstly I desoldered the EEPROMs and checked whether they work in emulator as MMC3 and they ran flawlessly. However, many bytes of PRG are diferent in comparision to the loopy's (some are for example zeroed). But there are still copyrights, so no idea what authors of the cartridge changed. So either mapper-blob is broken or any other issue.

-

Then I pre-programmed them with other MMC3 game (I choose Doki Doki Yuuenchi, it's my faourite one for testing) and it worked. Even the scanline counter was perfectly accurate. So either SMB2J triggers any unkown register in MMC3 blob or...

Well, Doki does not use PRG-RAM while SMB2J does, so maybe that's the issue? I checked the PRG-RAM chip to be be OK. So I started analyzing what's going on with the PRG-RAM-/CS line and well.. it looked freakingly weird.

Image

It turns out that the line is like open collector. That is, mapper only drives it low, but it is pulled-up to VCC by external 4.7k resistor (lowering the resistor to 470R made edges more vertical but still game didn't worked). And the few ns spike, caused by M2-/ROMSEL delay when accessing mapper registers at $e000-$ffff, produces slowly-rising signal that probably corrupts this fast 70ns RAM.

-

Firstly I thought of just adding a small capacitor to GND (but my experience is that results depends of the internal resistance of output). So much better was to add well-trusted circuit:

Code: Select all

        VCC
         | 
         1k
         | 
mapper --+-|>|-+---+-- WRAM-/CE
         |     |   |
         +-1k--+  56p
                   |
                  GND
Resulting signal looked very promissing and indeed game started to work:
Image Image

-

So this will probably be issue with ANY MMC3 game that uses WRAM on this particular PCB.

Why they released such cartridge? Well, maybe they tested it with slower RAM. Here is 70ns which is one of the fastests ones, vulnerable to such short skipes.

For anyone trying to dump any of those cartridges: it watches for M2 and when it detect it to stop toggling, it disables any further writes to mapper register (and access to RAM)
Attachments
apply_over_smb2j_mmc3_loopy.ips
(1007 Bytes) Downloaded 528 times
User avatar
Gilbert
Posts: 564
Joined: Sun Dec 12, 2010 10:27 pm
Location: Hong Kong
Contact:

Re: Fixing Chinese SMB2J

Post by Gilbert »

I think they probably only tested the things with Famiclones. That's why they didn't work without fixing on the real consoles (maybe they're not supposed to work on original consoles anyway as they never expect someone to even play it with the real thing).
User avatar
Ben Boldt
Posts: 1149
Joined: Tue Mar 22, 2016 8:27 pm
Location: Minnesota, USA

Re: Fixing Chinese SMB2J

Post by Ben Boldt »

Ohhhhh cool! I will try this. Actually I found a modified cartridge I made while digging through some junk, I wondered what it was and I put it in my NES and it turns out that it was already a SMB2J that I made already and I forgot about it........ But I will try this anyway. thanks
User avatar
krzysiobal
Posts: 1037
Joined: Sun Jun 12, 2011 12:06 pm
Location: Poland
Contact:

Re: Fixing Chinese SMB2J

Post by krzysiobal »

Just don't forget there is one track cut under the diode.
User avatar
Ben Boldt
Posts: 1149
Joined: Tue Mar 22, 2016 8:27 pm
Location: Minnesota, USA

Re: Fixing Chinese SMB2J

Post by Ben Boldt »

I finally got around to this, I modified the PCB, cutting the trace and adding the resistor, diode and cap. I used a BAT760 Schottky diode.

I had originally removed the ROMs from this board, directly dumped them, and reprogrammed with loopy's version of SMB2J, tried it, didn't work, removed the ROMs again, and that's where I left it before doing these mods today. Would you recommend using Loopy's or should I restore the original?

I noticed that the PCB fits in the case the same forwards and backwards! I will have to double-check as I put it back together.

Also, I believe that this game should support saving the number of times you beat the game -- have you tried the battery function of this board?
User avatar
krzysiobal
Posts: 1037
Joined: Sun Jun 12, 2011 12:06 pm
Location: Poland
Contact:

Re: Fixing Chinese SMB2J

Post by krzysiobal »

Loopy's version should work on those PCB without problem (tested).
You just need to repeat PRG/CHR content of the chips if the file is less than size of the chip.

I did not test battery backup (but the MMC3 mapper contained in glob respects PRG-RAM chip enable/disable and write protection bits).
User avatar
Fisher
Posts: 1249
Joined: Sat Jul 04, 2015 9:58 am
Location: -29.794229 -55.795374

Re: Fixing Chinese SMB2J

Post by Fisher »

That's interesting.
Are these cartridges from Aliexpress?
Did they come with 5v DIP ICs?
User avatar
Ben Boldt
Posts: 1149
Joined: Tue Mar 22, 2016 8:27 pm
Location: Minnesota, USA

Re: Fixing Chinese SMB2J

Post by Ben Boldt »

krzysiobal wrote:Loopy's version should work on those PCB without problem (tested).
You just need to repeat PRG/CHR content of the chips if the file is less than size of the chip.

I did not test battery backup (but the MMC3 mapper contained in glob respects PRG-RAM chip enable/disable and write protection bits).
Okay, will do. I think I will use an old small UV EPROM for CHR and save one of the flash ROMs from this.
Fisher wrote:That's interesting.
Are these cartridges from Aliexpress?
Did they come with 5v DIP ICs?
Yes and Yes. :)

I broke a couple of the plastic tabs opening it. :? Also I broke a trace leading to one of the holes. Not so great quality materials.

You can get it here:
https://www.aliexpress.com/item/-/32805392727.html
User avatar
Fisher
Posts: 1249
Joined: Sat Jul 04, 2015 9:58 am
Location: -29.794229 -55.795374

Re: Fixing Chinese SMB2J

Post by Fisher »

Thank you. :D
User avatar
Snacks
Posts: 40
Joined: Mon Feb 04, 2013 10:47 pm
Location: NTDEC

Re: Fixing Chinese SMB2J

Post by Snacks »

Ben Boldt wrote: You can get it here:
https://www.aliexpress.com/item/-/32805392727.html
board looks great to place another kind of softwares.
i am planning to make a bad apple cart with it. Thanks a lot ;D
The 100 Mega Shock
User avatar
aquasnake
Posts: 515
Joined: Fri Sep 13, 2019 11:22 pm

Re: Fixing Chinese SMB2J

Post by aquasnake »

here
Attachments
无标题.png
无标题.png (9.95 KiB) Viewed 12078 times
User avatar
aquasnake
Posts: 515
Joined: Fri Sep 13, 2019 11:22 pm

Re: Fixing Chinese SMB2J

Post by aquasnake »

both of these two roms i've tesed didnt work well on a real famicom/famiclone.

the prg data is good, but chr data and graphics dont display correctly.

i think the roms are bad.
User avatar
aquasnake
Posts: 515
Joined: Fri Sep 13, 2019 11:22 pm

Re: Fixing Chinese SMB2J

Post by aquasnake »

aquasnake wrote:both of these two roms i've tesed didnt work well on a real famicom/famiclone.

the prg data is good, but chr data and graphics dont display correctly.

i think the roms are bad.
i bet these guys(in shenzhen china) who made this cart just tested with one particular console which is based on one-bus VT famiclone system, which has individual ciram and not controlled by /PPU-A13 outside
User avatar
aquasnake
Posts: 515
Joined: Fri Sep 13, 2019 11:22 pm

Re: Fixing Chinese SMB2J

Post by aquasnake »

I reviewed this issue again because the write cycle of wram is too fast (<55ns), we need delay WRAM_CS for decades of nano-second. it can be solved by connecting a 4.7nF capacitor to the vcc on the WRAM_CS line
User avatar
Ben Boldt
Posts: 1149
Joined: Tue Mar 22, 2016 8:27 pm
Location: Minnesota, USA

Re: Fixing Chinese SMB2J

Post by Ben Boldt »

I just wanted to follow up on this, FINALLY I got around to completing this modification to my SMB2j cart. I reflashed the ROMs to loopy's original version and I found that it did not work with my real Famicom when I changed the cap to 4.7nF per aquasnake. I changed back to the 56pF in the original circuit from krzysiobal and it works fine:

Code: Select all

        VCC
         | 
         1k
         | 
mapper --+-|>|-+---+-- WRAM-/CE
         |     |   |
         +-1k--+  56p
                   |
                  GND
Post Reply