Mapper 339 variant

Discuss hardware-related topics, such as development cartridges, CopyNES, PowerPak, EPROMs, or whatever.
NewRisingSun
Posts: 1593
Joined: Thu May 19, 2005 11:30 am

Mapper 339 variant

Post by NewRisingSun »

This PCB knows three PRG banking modes:
- MMC3 banking
- NROM-256
- NROM-128

The outer bank bits and mode is selected via the address of a write to $6000-$7FFF. MMC3 banking mode is selected by A5=1. I don't understand based on the write patterns how it selects NROM-256 from NROM-128 mode, however.
339.4 Front.jpg
339.4 Front 2.jpg
339.4 Back.jpg
You do not have the required permissions to view the files attached to this post.
User avatar
krzysiobal
Posts: 1221
Joined: Sun Jun 12, 2011 12:06 pm
Location: Poland

Re: Mapper 339 variant

Post by krzysiobal »

I can tell you that if you tell me what goes to pins 8/9 of 7402 (IC4).

It is some logic combination of:
* $6000.A4 = PRG/CHR-A18
* $6000.A3 = PRG/CHR-A17
* $6000.A1 = NROM-A16
* $6000.A0 = NROM-A15

but I dont know exactly because the most important tracks are of course hidden as usual and I don't see any good reason to stick to a particular answer without knowing the ROM layout.

That multiplexer built on NOR gates switches between NROM-128 and NROM-256
7402_sch.png
//7402_sch.png

It can be
*IC4.8 = $6000.A4 = PRG/CHR-A18
*IC4.9 = $6000.A3 = PRG/CHR-A17
7402_pcb.jpg
//7402_pcb.jpg

and so:

Code: Select all

    IC4.8   |     IC4.9   |
	  =     |       =     |
  $6000.A4  |   $6000.A3  |
      =     |       =     |
PRG/CHR-A18 | PRG/CHR-A17 | MODE
------------+-------------+----------
      0     |      0      | NROM-128
      0     |      1      | NROM-256
      1     |      0      | NROM-256
      1     |      1      | NROM-256
but then I am left with that three unconnected vias, two upper are part of $6000.A2=NROM-A16 and bottom one is $6000.A1=NROM15
vias.jpg
//vias.jpg

If I'm not blind then IC4.8 must be $6000.A4=PRG/CHR-A18
p18.jpg
//p18.jpg

but IC4.9 can be also possibly
$6000.A1 = NROM-A16
?
You do not have the required permissions to view the files attached to this post.
Image My website: http://krzysiobal.com | Image My NES/FC flashcart: http://krzysiocart.com
NewRisingSun
Posts: 1593
Joined: Thu May 19, 2005 11:30 am

Re: Mapper 339 variant

Post by NewRisingSun »

I shall ask the cartridge owner if he can perform continuity checking. In the meantime, here are the menu write patterns and ROM offsets:

Code: Select all

Game                    Mode            Write   ROM Offset
Galaxian                NROM-128        $6000   $00000
Duck Hunt               NROM-128        $6001   $04000
Wild Gunman             NROM-128        $6002   $08000
Road Fighter            NROM-128        $6003   $0C000
Tengen Tetris           NROM-256        $6004   $10000
90 Tank                 NROM-256        $6006   $18000
Bucky O'Hare            MMC3            $6028   $20000
Kick Master             MMC3            $6030   $40000
Master Fighter 2        NROM-256        $6018   $60000
Edit: Answer: no, he cannot.
You do not have the required permissions to view the files attached to this post.
User avatar
krzysiobal
Posts: 1221
Joined: Sun Jun 12, 2011 12:06 pm
Location: Poland

Re: Mapper 339 variant

Post by krzysiobal »

I would assume the following then:

Code: Select all

$6000.A5 | $6000.A4 | $6000.A2  | mode
---------+----------+-----------+--------
     1   |      x   |      x    | MMC3
     0   |      0   |      0    | NROM-128
     0   |      0   |      1    | NROM-256
     0   |      1   |      0    | NROM-256
     0   |      1   |      1    | NROM-256
it would match the PCB and would explain the existence of two vias:
via2.jpg
You do not have the required permissions to view the files attached to this post.
Image My website: http://krzysiobal.com | Image My NES/FC flashcart: http://krzysiocart.com
NewRisingSun
Posts: 1593
Joined: Thu May 19, 2005 11:30 am

Re: Mapper 339 variant

Post by NewRisingSun »

So these are the five different variants of very similar PCBs that only differ in their NROM-256 selection method. The wiki currently only describes "submapper 0".

submapper 0 (K-3006):

Code: Select all

Galaxian		7000	NROM-128
Pac-Man			7001	NROM-128, A&6 = 0
Star Force		7002	NROM-128, A&6 = 2
Battle City		7003	NROM-128, A&6 = 2
Pooyan			7004	NROM-128, A&6 = 4
Bomberman		7005	NROM-128, A&6 = 4
Super Mario Bros.	7006	NROM-256, A&6 = 6
Double Dragon II	7028	MMC3
Super Contra		7030	MMC3
Crossfire		7038	MMC3
submapper 1 (unmarked PCB):

Code: Select all

Menu			6000	NROM-128
Galaxian		6000	NROM-128, A&4 = 0
Duck Hunt		6001	NROM-128, A&4 = 0
Wild Gunman		6002	NROM-128, A&4 = 0
Bomberman		6003	NROM-128, A&4 = 0
Tengen Tetris		6004	NROM-256, A&4 = 4
90 Tank			6006	NROM-256, A&4 = 4
Captain America		6028	MMC3
Tokyuu Shirei Solbrain	6030	MMC3
Monster in My Pocket	6038	MMC3
submapper 2 (Realtec TL 8058):

Code: Select all

Read Solder Pad		6080
Menu			6000	NROM-128
Galaxian		6840	NROM-128, A&1 = 0
Road Fighter		6841	NROM-128 or NROM-256, A&1 = 1
Adventure Island	6843	NROM-256, A&1 = 1
Chinese Chese		6845	NROM-256, A&1 = 1
Tengen Tetris		6847	NROM-256, A&1 = 1
Double Dragon II	6829	MMC3
Master Fighter II	6911	NROM-256, A&1 = 1
Contra Force		6879	MMC3
submapper 3 (K-3091/GN-16):

Code: Select all

Read Solder Pad		6080
Menu			6000	NROM-128, A&18 = 0
Duck Hunt		6801	NROM-128, A&18 = 0
Wild Gunman		6842	NROM-128, A&18 = 0
Hogan's Alley		6843	NROM-128, A&18 = 0
Binary Land		6844	NROM-128, A&18 = 0
Ice Climber		6845	NROM-128, A&18 = 0
Dig Dug			6846	NROM-128, A&18 = 0
Lode Runner		6847	NROM-128, A&18 = 0
Adventure Island	6848	NROM-256, A&18 = 8
Chinese Chese		684A	NROM-256, A&18 = 8
Tengen Tetris		684C	NROM-256, A&18 = 8
90 Tank			684E	NROM-256, A&18 = 8
Master Fighter II	6010	NROM-256, A&18 = 10
Monster in My Pocket	6878	MMC3
submapper 4 (GR-002-31):

Code: Select all

Galaxian                6000	NROM-128, A&1C = 0
Duck Hunt               6001	NROM-128, A&1C = 0
Wild Gunman             6002	NROM-128, A&1C = 0
Road Fighter            6003	NROM-128, A&1C = 0
Tengen Tetris           6004	NROM-256, A&1C = 4
90 Tank                 6006	NROM-256, A&1C = 4
Bucky O'Hare            6028	MMC3    
Kick Master             6030	MMC3    
Master Fighter 2        6018	NROM-256, A&1C = 18
I am afraid that I really will have to use either one submapper for each, or even use a new mapper for at least one of them; I don't see one common pattern for NROM-256 that would satisfy all five without breaking at least one NROM-128 game. And that is already taking into account that NROM-128 games in the second half of a 32 KiB PRG-ROM bank can run as NROM-256.
NewRisingSun
Posts: 1593
Joined: Thu May 19, 2005 11:30 am

Re: Mapper 339 variant

Post by NewRisingSun »

I have updated the wiki accordingly.

https://www.nesdev.org/wiki/NES_2.0_Mapper_339

Many thanks, as usual, for your kind help, krzysiobal. I see from your screenshots that you have added a subfolder just for my stuff :oops: :lol:
Jerry
Posts: 14
Joined: Tue Oct 08, 2024 3:22 am

Re: Mapper 339 variant

Post by Jerry »

Sorry, I'm a little confused. Why isn't MMC3-WRAM_CE connected to CLK? It is connected through 7402. What's so special about it? So is the reset circuit.
User avatar
krzysiobal
Posts: 1221
Joined: Sun Jun 12, 2011 12:06 pm
Location: Poland

Re: Mapper 339 variant

Post by krzysiobal »

Jerry wrote: Fri Sep 19, 2025 10:23 pm Sorry, I'm a little confused. Why isn't MMC3-WRAM_CE connected to CLK? It is connected through 7402. What's so special about it? So is the reset circuit.
Yeah, that bothered me too. I don't remember anything like that in any of the MMC3+NROM discrete carts I've ever seen before, there was either:
* MMC-WRAM-/CE connected directly to the register CLK or
* MMC-WRAM-/CE ORed with MMC-WRAM-/WE connected to the register.
http://krzysiobal.com/carts/?action=sea ... t=name_asc

I spent some time thinking what is connected to IC5 pin 3:
ic5_3_sch.png
//ic5_3_sch.png

because potentially there could be
* some higher addres bit (like CPU-A6), that would force the register to be written only if that address bit equals 0, but there is no such cpu address signal nearby
* some latched data bit, that would result as a write protection (after that bit is set to 1, all further writes are ignored), but I don't see any unused address bit for that purpose.

I thought this is some kind of delay circuit to surpress glitch writes (when MMC3 writes to $E000-$FFFF, if WRAM is enabled, there is short spike on the WRAM /CE due to the M2-ROMSEL delay). I was curious why they connected one of the NOR inputs to GND and the other to MMC-WRAM-/CE instead of both to MMC3-WRAM-/CE. Looks like I was fooled by the nearby GND via that is there:

//ic5_3_pcb.jpg
ic5_3_pcb.jpg
But looking at the other top layer photo that has slightly different angle now I see that IC5.3 is IC6.15 = $6000.A5
//ic5_3_is_ic6_15.jpg
ic5_3_is_ic6_15.jpg
and so indeed $6000.A5 acts as a write-protection bit - that is, when mapper is switched to MMC3 ($6000.A5=1), all further writes to this register (until reset) are ignored.
//sch_fix.png
sch_fix.png
You do not have the required permissions to view the files attached to this post.
Image My website: http://krzysiobal.com | Image My NES/FC flashcart: http://krzysiocart.com
User avatar
krzysiobal
Posts: 1221
Joined: Sun Jun 12, 2011 12:06 pm
Location: Poland

Re: Mapper 339 variant

Post by krzysiobal »

NewRisingSun wrote: Fri Sep 19, 2025 12:13 pm I have updated the wiki accordingly.

https://www.nesdev.org/wiki/NES_2.0_Mapper_339

Many thanks, as usual, for your kind help, krzysiobal. I see from your screenshots that you have added a subfolder just for my stuff :oops: :lol:
My pleasure, thanks to your suggestions I was also able to finish quite similar PCB but with VRC4 instead of MMC3 that has also ability to switch between two distinct VRC types (mapper 23 vs 25):

Code: Select all

------------GAME----------------------   PRG  CHR MPR
Teenage Mutant Ninja Turtles 1 (J)      256K 256K VRC4D (mpr 25), VRC-A1=CPU-A2, VRC-A0=CPU-A3
Akumajou Special - Boku Dracula Kun (J) 128K 128K VRC4C (mpr 23), VRC-A1=CPU-A3, VRC-A0=CPU-A2
Adventure Island                         32K  32K CNROM
Shin Jinrui - The New Type (J)           32K  32K CNROM
Galaxian                                 16K   8K NROM
Battle City                              16K   8K NROM
Lunar Ball                               16K   8K NROM
Menu                                     16K   8K NROM

[fedcba9576543210] @ $6000-$7fff:
[011.......MQDCBA]
           ||++++--- PRG bits for NROM mode
           ||| +---- NROM mode (0=32K, 1=16k)
           ||+------ CHR A17 for NROM mode
           |+------- PRG/CHR-A18
           |+------- what drives PRG-A17 and CHR-A17: 0=D/D, 1=VRC-PRG-A17/VRC-CHR-A17
           |+------- VRC mode:                        0=mapper 23, 1=mapper 25
           +-------- what drives PRG-A16/A15/A14/A13: 0=C/B/A/CPU-A13, 1=VRC)
		   
CHR A16..A10 are always controlled by VRC
You do not have the required permissions to view the files attached to this post.
Image My website: http://krzysiobal.com | Image My NES/FC flashcart: http://krzysiocart.com
Jerry
Posts: 14
Joined: Tue Oct 08, 2024 3:22 am

Re: Mapper 339 variant

Post by Jerry »

$6000.A5 acts as a write protection bit, so there is no problem.