Weird NROM question

Are you new to 6502, NES, or even programming in general? Post any of your questions here. Remember - the only dumb question is the question that remains unasked.

Moderator: Moderators

Post Reply
albailey
Posts: 177
Joined: Thu Jul 13, 2006 3:15 pm

Weird NROM question

Post by albailey »

I dont know which forum this goes in (hardware, emulator, etc..) but I get the feeling its a pretty newbie question so I'll post it here.

I was looking at the ROM for the Port Test Cartridge (halfway down this page)
http://www.nesplayer.com/features/test%20carts/test.htm

This ROM is treated in iNES as a NROM with 2 PRG banks and ZERO CHR banks. I thought NROM meant that you required the CHR to be hardwired. You can see from the PCB picture (also on that link) that this is a very specialized board.

Any ideas on what its doing? I was going to try to step through the reset/nmi routines and see what its doing.
Is NROM allowed to write to CHR RAM? Could a person put CHR RAM on a regular NROM board ( and write to it during initialization)
I was hoping someone here might have a bit more experience with this sort of thing.

Al
User avatar
Disch
Posts: 1848
Joined: Wed Nov 10, 2004 6:47 pm

Re: Weird NROM question

Post by Disch »

albailey wrote:This ROM is treated in iNES as a NROM with 2 PRG banks and ZERO CHR banks. I thought NROM meant that you required the CHR to be hardwired.
CHR-RAM can be hardwired just like CHR-ROM. Whether or not the chip is RAM or ROM makes no difference as far as the board is concerned, afaik.
Is NROM allowed to write to CHR RAM? Could a person put CHR RAM on a regular NROM board ( and write to it during initialization)
The board/mapper used doesn't matter. If RAM exists on the cartridge (and is writable), then the game can write to it.

So yes.
tepples
Posts: 22345
Joined: Sun Sep 19, 2004 11:12 pm
Location: NE Indiana, USA (NTSC)
Contact:

Post by tepples »

There are two independent questions here:

Does NROM work with CHR RAM?
I don't know whether the CHR socket of the board labeled "NROM" accommodates an SRAM chip. For example, some boards designed only for CHR ROM don't bring CHR /WR to the cart edge. Does NROM allow for a typical SRAM pinout, including the CHR /WR signal?

What should my emulator do if it encounters an iNES file specifying mapper 0 and CHR RAM?
Mapper 0 on wiki recommends emulating a BNROM board with only 16 or 32 KiB of PRG ROM installed.
User avatar
tokumaru
Posts: 12106
Joined: Sat Feb 12, 2005 9:43 pm
Location: Rio de Janeiro - Brazil

Post by tokumaru »

Also, what does NROM mean exactly? This is the name of the board, so in order to know if the board works with RAM chips, out of the box, you'll have to check if the pinouts are compatible, as was already said. But in any case, it is possible to install an SRAM chip in place of a ROM chip, even if you have to do some rewiring and bring the CHR /WR signal from the cart connector to the chip.

Now, if we're talking "Mapper 0", number assigned for use with the iNES header format, it sound reasonable that it just means "no ROM mapping hardware" (such as MMC1, MMC3, etc), instead of defining an NROM board (which, as far as I know, always comes with CHR-ROM). In my opinion, an emulator should accept a ROM with 32KB of PRG-ROM and CHR-RAM if it uses mapper 0 and has no CHR-ROM.
albailey
Posts: 177
Joined: Thu Jul 13, 2006 3:15 pm

Post by albailey »

I meant mapper 0. I just always associate mapper 0 as NROM, and now I see there are other types as well.
Thanks,
Al
User avatar
Bregalad
Posts: 8036
Joined: Fri Nov 12, 2004 2:49 pm
Location: Caen, France

Post by Bregalad »

"NROM" does not accept 8 KB CHR RAMs, as the board wasn't designed that way, modding it to accept them would be somewhat simple but that'd still be a modded NROM and not really a NROM board any more.
In revanche, mapper 0 support both CHRROM and CHRRAM technically, even if no commerical game was ever released with such a configuration (the closest being CPROM or BNROM), there is no reason it'd be refused by emulators, as far as the ROM in quesion is a simple test using CHRRAM and that implement a mapper on the programm more complicated than mapper 0 wouldn't have been necessary and would have complicated the thing.
Post Reply