Fixing Chinese SMB2J

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

Moderators: B00daW, Moderators

Post Reply
krzysiobal
Posts: 731
Joined: Sun Jun 12, 2011 12:06 pm
Location: Poland

Fixing Chinese SMB2J

Post by krzysiobal » Tue Jan 29, 2019 12:01 pm

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 394 times

User avatar
Gilbert
Posts: 384
Joined: Sun Dec 12, 2010 10:27 pm
Location: Hong Kong
Contact:

Re: Fixing Chinese SMB2J

Post by Gilbert » Tue Jan 29, 2019 6:44 pm

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: 557
Joined: Tue Mar 22, 2016 8:27 pm
Location: Minnesota, USA

Re: Fixing Chinese SMB2J

Post by Ben Boldt » Fri Feb 01, 2019 4:37 pm

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

krzysiobal
Posts: 731
Joined: Sun Jun 12, 2011 12:06 pm
Location: Poland

Re: Fixing Chinese SMB2J

Post by krzysiobal » Fri Feb 01, 2019 6:59 pm

Just don't forget there is one track cut under the diode.

User avatar
Ben Boldt
Posts: 557
Joined: Tue Mar 22, 2016 8:27 pm
Location: Minnesota, USA

Re: Fixing Chinese SMB2J

Post by Ben Boldt » Tue Feb 19, 2019 5:23 pm

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?

krzysiobal
Posts: 731
Joined: Sun Jun 12, 2011 12:06 pm
Location: Poland

Re: Fixing Chinese SMB2J

Post by krzysiobal » Thu Feb 21, 2019 10:06 am

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: 1091
Joined: Sat Jul 04, 2015 9:58 am
Location: -29.794229 -55.795374

Re: Fixing Chinese SMB2J

Post by Fisher » Thu Feb 21, 2019 10:22 am

That's interesting.
Are these cartridges from Aliexpress?
Did they come with 5v DIP ICs?

User avatar
Ben Boldt
Posts: 557
Joined: Tue Mar 22, 2016 8:27 pm
Location: Minnesota, USA

Re: Fixing Chinese SMB2J

Post by Ben Boldt » Thu Feb 21, 2019 1:27 pm

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: 1091
Joined: Sat Jul 04, 2015 9:58 am
Location: -29.794229 -55.795374

Re: Fixing Chinese SMB2J

Post by Fisher » Thu Feb 21, 2019 5:14 pm

Thank you. :D

User avatar
Snacks
Posts: 34
Joined: Mon Feb 04, 2013 10:47 pm
Location: NTDEC

Re: Fixing Chinese SMB2J

Post by Snacks » Wed Aug 14, 2019 4:31 am

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: 104
Joined: Fri Sep 13, 2019 11:22 pm

Re: Fixing Chinese SMB2J

Post by aquasnake » Thu Oct 17, 2019 6:04 am

here
Attachments
无标题.png
无标题.png (9.95 KiB) Viewed 7025 times

User avatar
aquasnake
Posts: 104
Joined: Fri Sep 13, 2019 11:22 pm

Re: Fixing Chinese SMB2J

Post by aquasnake » Mon Nov 11, 2019 4:31 am

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: 104
Joined: Fri Sep 13, 2019 11:22 pm

Re: Fixing Chinese SMB2J

Post by aquasnake » Mon Nov 11, 2019 4:54 am

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: 104
Joined: Fri Sep 13, 2019 11:22 pm

Re: Fixing Chinese SMB2J

Post by aquasnake » Tue May 12, 2020 7:27 pm

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: 557
Joined: Tue Mar 22, 2016 8:27 pm
Location: Minnesota, USA

Re: Fixing Chinese SMB2J

Post by Ben Boldt » Wed Jul 01, 2020 1:10 pm

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