Different Mappers Needed?

This is an archive of a topic from NESdev BBS, taken in mid-October 2019 before a server upgrade.
View original topic
Different Mappers Needed?
by on (#25639)
Do we need new mappers for the following games

Alien Syndrome

This game is presumed to use Mapper 64 just like all the other Tengen games that use the RAMBO-1 chip. Unlike the rest of the RAMBO games, it uses a slightly different board, the 800037, as opposed to the 800032. It is glitchy in Mapper 4 or 64 though, so a new mapper is needed.

Karnov

This game uses a version of Tengen's MIMIC-1, but ius assigned to mapper 4. This is a stripped down MMC3 clone that only allows the user to select PRG and CHR banks. Ring King, R.B.I. Baseball and Gauntlet among the licensed games and several unlicensed Tengen games use the MIMIC-1. In order to avoid the issue of games writing to where they should not be writing (where there are registers in the MMC3 but not in the MIMIC-1), a separate mapper is needed that emulates the PRG and CHR selection and nothing else.


Death Race

Apparently, this is the one Color Dreams game that does not follow the standard 377 board arrangement, kevtris' page describes how the bus conflict is overcome for D0 only. Does this require something other than Mapper 11 to properly emulate?

Low-G-Man

The standard in Mapper 4 is to assume 8KB of S-RAM when a program writes to 6000-7FFF. In this case, this game uses an open bus, where it writes to that area when no RAM is present. A new mapper should be used to designate MMC3 with open bus emulation.

In short, is anyone willing to take four iNES mappers and fix things?

by on (#25640)
It wouldn't make sense to assign a new mapper for Low G Man. That should really be handled by header bits. Since a WRAM value of $00 defaults to one WRAM bank for backward compatibility, I'm going to recommend to Marat that a value of $FF (-1) be interpreted as zero and that this be published in the official spec. That would fix Low G Man.

Namco 109 / MIMIC-1 should be reassigned a different mapper than MMC3. So, for that matter, should MMC6, since its IRQ handling is subtly different.

by on (#25641)
I remember bringing up Alien Syndrome some time ago, I think some emulators like Nestopia and FCE Ultra have a different number for it, can't remember what it is off-hand though. AFAIK, it's currently it's stuffed it with mapper 118, which I think it fully works with, that's not to say it shouldn't have it's own number though.

I think the 109 should have it's own assignment as well.

Nestopia uses mapper 144 for Death Race, I just realized I have that set wrong in the DB, I will have to change that.

by on (#25643)
Quote:
This game is presumed to use Mapper 64 just like all the other Tengen games that use the RAMBO-1 chip. Unlike the rest of the RAMBO games, it uses a slightly different board, the 800037, as opposed to the 800032. It is glitchy in Mapper 4 or 64 though, so a new mapper is needed.

The RAMBO-1 is a MMC3 with one or two additional features (it can bankswitch all 1 KB CHRROM banks if a particular bit (unused on the MMC3) is set), the chip seems backwards-compatible with the MMC3. Alien Syndrome seems to not rely on the new features and work exacly like a licenced TLSROM and TKSROM games, so I really think it should stay mapper 118 unless there is a good reason to switch.
Quote:

This game uses a version of Tengen's MIMIC-1, but ius assigned to mapper 4. This is a stripped down MMC3 clone that only allows the user to select PRG and CHR banks. Ring King, R.B.I. Baseball and Gauntlet among the licensed games and several unlicensed Tengen games use the MIMIC-1. In order to avoid the issue of games writing to where they should not be writing (where there are registers in the MMC3 but not in the MIMIC-1), a separate mapper is needed that emulates the PRG and CHR selection and nothing else.

What you're talking about should be the Namco 109, the early MMC3 with only PRG and CHR bankswitching that is used on DxROM games. As long as no commercial games relies on the fact that writing to, say $a000 or $a001 has the same effect than write to $8000 or $8001 on a real MMC3, I don't see why the mapper should be changed (I don't think any games relies on this, at least not in the US).
If any homebrew games ever uses that mapper as well, it shouldn't be hard for them to not rely on this. I don't like the idea to create new mappers wich are 99% like existing ones when this can be avoided. In the cases of mapper 118 and 119 there were no choise, but here there is really no neeed.
Also note that the MIMIC-1 just mimic the N109, not the MMC3.
Quote:

Apparently, this is the one Color Dreams game that does not follow the standard 377 board arrangement, kevtris' page describes how the bus conflict is overcome for D0 only. Does this require something other than Mapper 11 to properly emulate?

I have no idea about this one, but the logic is the same : If there is a real problem with it being mapper 11, then it needs it's own mapper. If there is just a subtle hardware difference that doesn't affect emulation, why care ?
Quote:

The standard in Mapper 4 is to assume 8KB of S-RAM when a program writes to 6000-7FFF. In this case, this game uses an open bus, where it writes to that area when no RAM is present. A new mapper should be used to designate MMC3 with open bus emulation.

This is a very particular one, because this is only due to bad programming. Since the mapper *IS* a regular MMC3 board, I'd be against setting it to a different mapper, just use the iNES 2.0 to specify WRAM is absent.

by on (#25649)
"Different mapper" means a different set of header data that distinguish between the current assignment. This could mean a different mapper number or a different set of sub-mapper flags.

An important question: is the goal to emulate the games accurately (in which case you don't care about how the current mapper assignment handles things the game never writes to), or to emulate the mappers in the games accurately (in which case you do care about how things are handled that the game never actually writes to)? The former is about game emulation, the latter about hardware preservation.

by on (#25651)
For my best, this question has no answer. Sounds MAMEished, but come on... we're developing an hardware emulator that supposely can load and play those games, as being homebrew or commercial, since there's no way of blocking them. Well, if you're worried about a specific game and its emulation, fair enough - you're worried with the cartridge board itself, since the program data just do the task.

Anyway, that's me... ^_^;;

by on (#25652)
According to BootGod's database, Karnov is on the board NES-DE1ROM-01. According to the Nestopia source, DE1ROM is mapper 206. The implementation of mapper 206 in Nestopia is identical to mapper 4 except that writes to $A000-FFFF are ignored (this is NOT actual Namco-109 behavior, but it may be what's needed to fix Karnov).

by on (#25653)
Quote:
According to BootGod's database, Karnov is on the board NES-DE1ROM-01. According to the Nestopia source, DE1ROM is mapper 206. The implementation of mapper 206 in Nestopia is identical to mapper 4 except that writes to $A000-FFFF are ignored (this is NOT actual Namco-109 behavior, but it may be what's needed to fix Karnov).


Apparently, Karnov can in some emulations, write to the A000 register, which controls the mirroring. This will cause tell-tale graphics problems, as shown in the PowerPak. None of the other games that use the MIMIC/109 hardware seem to be affected by this issue.

But how many NES emulators are in active development and accurate enough that this will become an issue? An emulator, even a good one, that is no longer being updated, won't recognize new mapper numbers or standards. A new, immature emulator has greater priorities.

Quote:
The RAMBO-1 is a MMC3 with one or two additional features (it can bankswitch all 1 KB CHRROM banks if a particular bit (unused on the MMC3) is set), the chip seems backwards-compatible with the MMC3. Alien Syndrome seems to not rely on the new features and work exacly like a licenced TLSROM and TKSROM games, so I really think it should stay mapper 118 unless there is a good reason to switch.


One reason is that the IRQ counter, as documented on kevtris' page, is sufficiently different, just as the MMC6's. The MMC3 cannot select 8 1K CHR ROM pages, it can only select 4 1K and 2 2K at a time. I'm not sure whether it is mapper related or not, but Alien Syndrome, using mapper 118 does not work quite right in Nestopia (score screen is corrupted.)

Quote:
It wouldn't make sense to assign a new mapper for Low G Man. That should really be handled by header bits. Since a WRAM value of $00 defaults to one WRAM bank for backward compatibility, I'm going to recommend to Marat that a value of $FF (-1) be interpreted as zero and that this be published in the official spec. That would fix Low G Man.


That is a good idea to use FF, but why bother Marat? He seceeded leadership in NES emulation years ago. The cutting edge is here.

by on (#25660)
dvdmth wrote:
According to BootGod's database, Karnov is on the board NES-DE1ROM-01. According to the Nestopia source, DE1ROM is mapper 206. The implementation of mapper 206 in Nestopia is identical to mapper 4 except that writes to $A000-FFFF are ignored (this is NOT actual Namco-109 behavior, but it may be what's needed to fix Karnov).

If Karnov relies on $a000 to mirror $80000 (like I guess the N109 does), then I guess a new mapper (or sub-mapper) is definitely necessary, I don't like multiple-similar mappers but it's still better than CRC checks.
Quote:
One reason is that the IRQ counter, as documented on kevtris' page, is sufficiently different, just as the MMC6's. The MMC3 cannot select 8 1K CHR ROM pages, it can only select 4 1K and 2 2K at a time. I'm not sure whether it is mapper related or not, but Alien Syndrome, using mapper 118 does not work quite right in Nestopia (score screen is corrupted.)

Then, my answer is the same as above.

by on (#25661)
Why does mapper 71 even exist?

by on (#25677)
I just looked up Karnov in Nestopia's database, and it is classified under mapper 206 (CRC 548A2C3C). A quick DB scan shows several other m206 entries in the DB, though I don't know what games they are (I'm assuming they're other Namco-109 / MIMIC-1 games).

BootGod, I recommend changing Namco-109 games to mapper 206 in your DB. Nestopia is by no means the only emulator acknowledging this mapper designation.

by on (#25684)
Tengen's MIMIC-1 is the same as Namco 109, isn't it? (Except that the former has an added lockout-defeat circuit built in.) Kevin Horton's mapper page seems to indicate this (see, for instance, the DRROM description page, which treats the two as synonomous). That would seem to indicate that a lot of common Tengen games, such as both licensed and unlicensed versions of RBI Baseball, should also be reassigned away from mapper #4.

by on (#25689)
OK I will change them over momentarily. I will also change Namco 108 and 118 games to 206 as well, as they all appear to be equivalent.

I don't know why kevtris refers to the 109 as the MIMIC-1, they may function the same, but I don't think Tengen has anything to do with the 109.

Also, I've wondered if the 108/109/118 is even a custom Namco chip, or if it's a general purpose chip they just liked to use. On DxROM boards, the pcb description for the chip is "CAS 108/109". Does anyone know what CAS might stand for?

by on (#25690)
BootGod wrote:
I don't know why kevtris refers to the 109 as the MIMIC-1, they may function the same, but I don't think Tengen has anything to do with the 109.


The N109 chip predates the MIMIC-1, yes. We know that Tengen licensed some games from Namco, such as RBI Baseball and Pac-Man; it seems likely that they also licensed the N109 as well. This is what was used in the official DxROM boards. When Tengen split with Nintendo, they apparently retained their relationship with Namco, and decided to stay with the same mapper for a while. However, since they could no longer use the official CICs from Nintendo, they put the N109 circuitry on a new chip along with the lockout-defeat functionality and renamed it the MIMIC-1. (The expanded RAMBO-1 chip came later, I think.)

BootGod wrote:
Also, I've wondered if the 108/109/118 is even a custom Namco chip, or if it's a general purpose chip they just liked to use. On DxROM boards, the pcb description for the chip is "CAS 108/109". Does anyone know what CAS might stand for?


Not sure what it stands for in this context. In DRAM-based systems, it can mean Column Access Strobe (you might have a setting like this in your PC's BIOS) but that obviously isn't relevant here.

I don't think the N109 (or any of that series) is a general-purpose chip. What would it have been used for? Not too many systems of that era besides the NES had separate PRG and CHR buses.

Incidentally, I'm curious how the title for the Namco 106 chip was determined. All the N106 boards in your list have black blobs. Have you ever seen one that was in a standard DIP or Shrink-DIP package?

by on (#25693)
Here you are my undestanding of the facts :

- Nintendo released the famicom in Japan and allowed game companies to get games licenced for their console (in 1983)
- The famicom has a great sucess, so of course Namco wich is a big game company developped software for it (in ~1985)
- Very fastly Namco wasn't satisfacted with the NROM configurations, and were one of the first company to devlopp other mappers
- Namco made their own custom chips, all labelled 10x for their famicom games (I'm not sure if they are even manufactured by Namco or not)
- One of those chips appear to be the 108 or 109, I assume the 109 is a small revision of the 108. They happen to allow great possibilities (for their time), including bankswitching of very small CHR ROM banks and PRG ROM banks (in 1986)
- This inspired Nintendo to devlopp their own different chip to use in their cartridges, the MMC1. Any other game company developping software but not manufacturing cartridges was invited to use this chip as well for their games (in 1987)
- As many games using the N108/109 were sucessfull, Namco decided to port them to the states. However, nobody were officially allowed to make their own cartridge for the NES, only for the famicom (including Namco).
- As all Nintendo made mappers, including the just-released MMC1 didn't have much of the 108/109 possibilities, Namco succeded to persuade Nintendo to made cartridge boards accepting their 108/109 chip. (Nintendo called them DEROM for some reason)
- Tengen collaborated with Namco somehow, and ported Gauntlet on the NES using the famous N109 chip and using 4-screen mirroring. Nintendo released this on another cartridge board called DRROM.
- Tengen and Nintendo has entered in war : As a result, Tengen begin to made their own unlicenced cartridges with their own lockout chip.
- Tengen wanted to release their own cartridge with the N109 chip as well, and developped/ported it to the MIMIC-1 wich is pretty much the same chip.
- Nintendo continued to release a few N109 made cartridge, but probably their supply of 109 ran out or something, and they found the chip interesting. So, they developped their MMC3 based on the 109 with a lot of improvements and new features. This will allow them to release games using the N109 with boards using the brand new MMC3 as well (Gaunlet for example).
- Tengen themsevles weren't satisfacted with the possibilities of the N109 (called MIMIC-1) any longer as well, so they developped their own MMC3-based chip (they got the wokings of the MMC3 in a way or another) with a few different features here and there, with an internal CIC, called RAMBO-1.
- Tengen reconciliated with Nintendo and all
- Romhackers started to dump NES and famicom cartridges.
- They assigned MMC3 cartridges to mapper 4.
- They did notice the carts with the N109, the MIMIC-1 were working in a very similar way as the MMC3, and they throught it would be simpler to assign all of these simply to mapper 4.
- A few games does not quite work just as well with mapper 4.

by on (#25698)
Josh wrote:
Incidentally, I'm curious how the title for the Namco 106 chip was determined. All the N106 boards in your list have black blobs. Have you ever seen one that was in a standard DIP or Shrink-DIP package?


I have not, just going by hearsay on that one. Apparently there are 2 different versions of it as well, the normal one using mapper 19 and a stripped down version using mapper 210. I haven't yet assigned anything to 210 because I wanted to look into that a little more. I have a big pile of Namco games to dump here, maybe I'll get lucky and find one that doesn't use blobs.

by on (#25703)
BootGod wrote:
OK I will change them over momentarily. I will also change Namco 108 and 118 games to 206 as well, as they all appear to be equivalent.

Nestopia treats Namco 108/118 games differently. By my count, there are four different mappers related to the 108/118:

* Mapper 88 ("NAMCOT 108/118") - The "normal" configuration. Registers $8000 and $8001 work as you'd expect, but for commands 2-5, the value written to $8001 is OR'ed with $40.

* Mapper 76 ("NAMCOT 108 +74LS32") - The implementation of this one is derived from the MMC3. Writes to $C000-FFFF are ignored, and commands 2-5 select 2K CHR banks at $0000, $0800, $1000, and $1800 (commands 0-1 are useless). I doubt that this accurately reflects hardware (seems hackish to me).

* Mapper 95 ("NAMCOT 118 +A1.D5.MIRR") - Same as mapper 88, except that bit 5 of $8001 controls mirroring in commands 0-5 (similar to the T*SROM boards).

* Mapper 154 ("NAMCOT 118 +A0.D6.MIRR") - Same as mapper 88, except that bit 6 of $8000 controls single-screen mirroring (like A*ROM boards).

by on (#25705)
I was aware of a number of wiring differences, but I believe the chips themselves work the same. I only switched the 108/109/118 carts to mapper 206 that were previously set to 4. The only game I've processed so far that doesn't fall into that category is Quinty, mapper 88. I'm thinking there must be a mistake in Nestopia now because mapper 88 has a 74xx32 and it's behavior is a bit different from what you mentioned. Only the lower 64K can be loaded into PPU $0000-0fff and the upper 64K can only be loaded into PPU $1000-1fff. That's probably where the OR by 40h is coming into play.

by on (#25706)
I see. It appears Nestopia's mapper naming could use a little more work, and the implementations could be more fine-tuned. I personally can only go by what I know, and much of what I know comes from the Nestopia source.

You might want to get in touch with Marty to straighten out the Namco mappers.

by on (#25746)
I just got done going thru and preparing to dump these Namco carts, I actually found 4 or 5 '106' carts that didn't use a blob for the mapper at least. It's a surface mount chip with the label '163'. Marty showed me a pic of one of these in the past, so I knew they were out there. Still have yet to run into anything with a '106' label...