About iNES mappers, memory sizes...

This is an archive of a topic from NESdev BBS, taken in mid-October 2019 before a server upgrade.
View original topic
About iNES mappers, memory sizes...
by on (#42605)
Hi, I've read about iNES mappers on the Nesdev wiki and got surprised to know that for example, there's a mapper with 128K for CHR-ROM! While I was thinking how to fit all the game's tiles in 4k...

Let's say I want to make a library and a game or some app, and I only plan it to be run on emulators, then I could choose the mapper that has more PRG-RAM and CHR-ROM / RAM possible, right?
Because the only concern on using strange mappers with lots of memory is when you have to actually build the cartridges, but if it all remains in software, then there shouldn't be any constraints.

Taking this into account, what mapper would you suggest for developing apps for emulators?

Do all emulators support all mappers? Or at least most of them?

by on (#42606)
If you want lots of features you could go with Nintendo MMC-5 for emulation as it's very flexible and powerful, although it doesn't have CHR-RAM technically though some emulators will give it that. Alternatively I recommend FME-7 (Sunsoft) which is mapper #069.

You mentioned more PRG-RAM, the MMC5 can have something like 32kb or 64kb of PRG-RAM maximum. You should really just look at mapper documents and find what you like.
Re: About iNES mappers, memory sizes...
by on (#42610)
Petruza wrote:
I only plan it to be run on emulators

Then you can make it for Game Boy Advance instead of NES. You get 88 KB of CHR RAM (56 KB for backgrounds and 32 KB for sprite cels) on the GBA, although it's really more like 44 KB because it's 4bpp instead of 2bpp like on the NES. That's on top of 32 KB of main RAM, 256 KB of non-battery-backed WRAM, 64 KB of battery-backed WRAM, a CPU whose assembly language feels like a 32-bit successor to the 6502, and a usable C compiler.

Or you can make it in Java.

MottZilla wrote:
If you want lots of features you could go with Nintendo MMC-5 for emulation

Does the best Free emulator for each platform emulate all known features of the MMC5 yet, including ExGrafix bankswitching per tile? I don't think PocketNES does.
Re: About iNES mappers, memory sizes...
by on (#42614)
Petruza wrote:
Do all emulators support all mappers? Or at least most of them?

The good ones do. Stick to the newer emulators that are still being worked on and you will have better chances of mapper support. The MMC5 is indeed the mapper that expanded the NES in more ways than any other.

I believe that you should pick your mapper on a project-by-project basis though. Always sticking to a complex mapper could often be overkill. I doubt anyone in the NESDEV community can afford to release a large series of complex MMC5 projects.
Re: About iNES mappers, memory sizes...
by on (#42628)
tepples wrote:
Game Boy Advance instead of NES

No thanks, NES is the reason I'm posting in this forum.

tepples wrote:
Or you can make it in Java.

If this is some kind of sarcasm, Idon't get it.
I've developed games in Java for cell phones, and C++ for Wintel, but that's not what I'm looking for in this forum.
Re: About iNES mappers, memory sizes...
by on (#42631)
Petruza wrote:
tepples wrote:
Game Boy Advance instead of NES

No thanks, NES is the reason I'm posting in this forum.

Perhaps, but in your question you specifically excluded the NES:
Petruza wrote:
Let's say I want to make a library and a game or some app, and I only plan it to be run on emulators

If it's for the general NES graphics and programming architecture, the GBA is similar (NES on steroids).
Re: About iNES mappers, memory sizes...
by on (#42638)
What Petruza really meant when he wrote:
Let's say I want to make a library and a game or some app, and I only plan it to be run on NES emulators, and not build a cartridge to be run on the actual console


Anyway, yes, I could develop for a number of more powerful platforms.
Believe me I am, and I will, but in this forum, I want to focus on the NES.
The main goal that drove me here is that I wanted to make some apps for my MP4 player, and there a lot more documentation for NES development than for the player's processor, and most important: a C compiler :D
And then, reading docs and this forum, I really liked the Nes, though I dind't have one when I was a child, but now I felt like developing something for it.

But again, as I don't plan on building cartridges and don't own a NES ( just some crappy Fami-Clones ) I though that it wouldn't be necessary to be worried about memory limitations of some mappers, because choosing any of them wouldn't mean higer costs or anything else...

by on (#42648)
MMC1 is super common (thus widely supported) and pretty useful. There are a few MMC1 titles that use 16kB of PRG-RAM (Genghis Khan is one - probably not so widely supported), but I doubt you'll need more than 8kB, right?
Re: About iNES mappers, memory sizes...
by on (#42664)
Petruza wrote:
The main goal that drove me here is that I wanted to make some apps for my MP4 player

Then you have to use one of the mappers that your MP4 player's NES emu supports. It's unlikely that this would include accurate MMC5 emulation. And even if you get an app to work on a highly accurate PC-based emulator, that doesn't mean your MP4 player will run it; we had a topic about a portable DVD player that Failed It when blargg and I were trying to make a simple e-book reader.