It is currently Thu Apr 18, 2019 7:57 am

All times are UTC - 7 hours

Post new topic Reply to topic  [ 7 posts ] 
Author Message
PostPosted: Wed Feb 14, 2018 8:32 am 

Joined: Sun May 11, 2014 10:21 am
Posts: 5

I am interested in asking anyone with technical knowledge about a query regarding an idea I had.
Please be warned: I am by no means proficient on this subject and lack even basic technical knowledge.

My query is this:

I have noticed in homebrew development, devs are limited by how many tilesets, code etc... their cartridges can have for a single game. I understand that utilising different mappers gives more options but even with these, the limitations are evident for anyone wishing to have long cutscenes, variety in locations (meaning different tile sets), variation in music etc...

For many, I am sure these limitations are the reason they like to create projects for the Nes, but what about those who want to overcome this?

I thought about the idea of making a game which uses multiple cartridges. The idea is reminiscent to the days of having multiple floppy disks or CDs. Yet I don't particularly like the idea of having to carry around 20 cartridges and being like "play my game" lol

I wondered if it were possible for the ability to utilise an everdrive type of hardware to perform this task of making a 'multi-rom' game. The idea of having a fluid game experience without the need to change cartridges etc...

If I am correct, the everdrive has a firmware built into the cartridge which enables things like save states and the game selection menu etc... What if one was to make a similar device catered specifically to a single game.

A device which could seamlessly use multiple rom images and has the ability to flash specific roms when needed.

So for example - the 'multi-rom' cart boots up the title screen etc... It reads the previous save information meaning a player can resume their game or delete this save data by pressing new game.
Once an option is selected, the part of the game needed (the correct rom file) is flashed or however it would be done and the player is effectively playing that rom.
As they progress, the rom will have someway of letting the firmware know to load up the next rom file at the specific needed point and so on.
If there would be a delay in timing - for example how long the rom file takes to flash, then a simple 'now loading' screen could be used.

If this is a possible reality, it would mean we would be able to create lengthy nes games which used much more flexibility in their restrictions.

Please let me know if I am crazy.


PostPosted: Wed Feb 14, 2018 9:10 am 

Joined: Sun Sep 19, 2004 11:12 pm
Posts: 21305
Location: NE Indiana, USA (NTSC)
That's similar to the "FDS style NES cartridge" thing I occasionally see suggested here. The PCB would have these components on it:

  • CIC: Microcontroller to authenticate to the NES
  • 128Kx8 PRG RAM
  • 32Kx8 CHR RAM
  • SPI flash memory, such as a microSD card that can be in the gigabytes
  • IPL: Microcontroller or tiny boot ROM to read the first sector from flash to RAM
  • CPLD to switch banks of RAM and efficiently access the SPI flash, and generate IRQs if a microcontroller isn't already doing that
  • Level shifters to get the 3.3 V circuitry playing nicely with the 5.0 V NES Control Deck

The boot process would probably resemble that of an Apple II or IBM PC.

  1. The initial program loader (IPL) loads the first sector from the flash memory into RAM.
  2. The first sector loads the boot ROM from the root directory of the flash memory into RAM and jumps to it.
  3. Each ROM chain-loads the next ROM or loads files from flash, much as FDS games do.

What makes it slightly cheaper than an EverDrive is that because all ROMs in a set can use the same mapper, the mapper can be a CPLD instead of an FPGA. But another cost center for such a design is paying people to generate enough original material (other than sampled audio or full-motion video) to fill more than half a megabyte in the first place.

PostPosted: Wed Feb 14, 2018 9:25 am 
User avatar

Joined: Sun Jan 22, 2012 11:46 am
Posts: 109
Location: Stockholm, Sweden
There is really no need to go to such lengths. Big flash chips are easily available now, and you can create a 4 megabyte game without much trouble. Plausibly even bigger with some creativity.

PostPosted: Wed Feb 14, 2018 12:12 pm 

Joined: Sun May 11, 2014 10:21 am
Posts: 5
Could you direct me to the best place for someone just starting to learn about this?

I believe if I were able to use a custom flashboard like RetroUSB's 'A winner is you' does, I might have found an easier solution.

Ideally, the reason I bought up multiple rom images (as in my original post) is because I wished to use mapper 30 and the new development tool called Nes Maker. I figured using 256k roms collected would be easier (for a beginner) and allow me the luxury of having a software specifically catered to the development of Mapper 30 rom files.

PostPosted: Wed Feb 14, 2018 4:14 pm 
User avatar

Joined: Thu Mar 31, 2016 11:15 am
Posts: 514
There aren't any memory limitations if you're using custom hardware. It's easier to build a simple board with tons of ROM space than it is to build one with Everdrive-like features.

UNROM can handle 4 MB. If NESmaker supports UNROM just make one of those. That's a ton of space.

PostPosted: Wed Feb 14, 2018 4:51 pm 
User avatar

Joined: Sun Jan 22, 2012 12:03 pm
Posts: 7405
Location: Canada
Mapper 2 emulator implementation often extend the register up to 8 bits (4 MB), but the actual UNROM / UOROM only had a 4 bit latch (256 KB).

Mapper 30 is a superset of UNROM / UOROM, but not of mapper 2. It only has 5 bits to work with (512 KB) and the other 3 bits in the register are reserved for other things.

Getting NES Maker to support more than 512 KB is probably not something they have planned for, but you could make the request.

The other problem is that most common development carts only go up to 512 KB PRG, including the PowerPak and Everdrive, and the one that would come with NES Maker.

You can indeed use the PoewrPak or Everdrive's main storage to read information from, though, but that involves a bunch of custom mapper work, etc.

Without going as far as reading from a CF/SD card, the music cart "A Winner Is You" is still the biggest one I know of: (64 MB)

PostPosted: Mon Feb 19, 2018 11:35 am 
User avatar

Joined: Mon Jan 03, 2005 10:36 am
Posts: 3141
Location: Tampere, Finland
rainwarrior wrote:
You can indeed use the PoewrPak or Everdrive's main storage to read information from, though, but that involves a bunch of custom mapper work, etc.

At least on PowerPak you can get by without a custom mapper, I have a proof of concept here: viewtopic.php?p=81216#p81216

Download STREEMERZ for NES from! — Some other stuff I've done:

Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 7 posts ] 

All times are UTC - 7 hours

Who is online

Users browsing this forum: slembcke and 2 guests

You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group