News:

Don't forget to visit the main site! There's lots of helpful docs, patches, and more!

Main Menu

Running on actual hardware - Filesize problem?

Started by Stinktier, February 22, 2015, 06:21:55 AM

Previous topic - Next topic

Stinktier

Okay, so i might be a little late to the party (while dabbling in analogue electronics, i'm no good for programming and logic), but i just recently understood that what makes a 16x16 bank expanded rom tick is the fact that MMC1 actually is capable of mapping the double amount of EPROM data than there was in the original game. In other words, something like a 27C256 EPROM could be used in place of the 128kilobit ROM mask eprom to actually run the game on real hardware. And with new made PCB:s avaible, one only needs to find MMC1 donors (which should be a total pain to unsolder without harm being done to the chip or its original pcb -- i've unsuccessfully tried to desolder simpler SMD chips like the sturdy tl074SOIC due to lack of skills --  but anyway...) or something that can be plopped in running MMC1 equivalent mapper software.

But, alas, the expanded .nes file is stated to be 385 kiloBYTES. How is that? I know it also includes CHR data, but that should only be like 8KB since all graphics are loaded from the PRG (somewhat unusual, isn't it?)


snarfblam

Just to be clear, the original ROM is 128 kilobytes (8 × 16KB banks) PRG ROM. MMC1 can address up to 256 kilobytes (16 × 16KB banks) of PRG ROM.

The thing you're probably being confused by is the fact that the original Metroid used CHR RAM in the cartridge, but the expanded Metroid ROM in question presumably (like many NES games) uses CHR ROM. Metroid stores graphic data in the program ROM and loads it into CHR RAM at runtime as you describe. A 384 KB ROM created by Editroid uses CHR ROM with bank swapping.

Whereas an iNES ROM stores both the PRG ROM and CHR ROM in the same file, they are actually physically stored in separate ROMs in the cartridge. When Editroid expands a ROM from 128 KB to 384 KB, in terms of hardware you're replacing the 128 KB PRG ROM with a 256 KB PRG ROM, and replacing the 8 KB CHR RAM with a 128 KB CHR ROM.

Stinktier

#2
Thanks for the explanation, snarfblam! It really confused me as i didn't understand that graphics had their own rom now, but it makes much more sense. 

Quoting the nesdev wiki, MMC1 is appearantly also capable of handling those 128KBs of CHR ROM (maybe self-evident since expanded metroid runs, but still something i wanted to note down here).
http://wiki.nesdev.com/w/index.php/MMC1


All in all, it should be applicable to hardware, then, by the standard procedure of splitting the file. That's some motivation to finish things up.  :nod:

EDIT: One hassle might be if battery saving is to be implemented? I've seen it done at some repro vendor's site, but i'm not sure wether it's a plug-n-play thing? Anyhow, infiniteneslives seems to have a comprehensive solution for everything without the need for any donor parts at all.