Hi, I'm an art student and my love for classic gaming as given me an ideia that I don't know if it doable. I's it possible to get a hacked rom into a nes cartridge or in one of those Nes-in-a-chip cheap famicom ripoffs ? My desire is not to get people to play a game but to enjoy the beauty that can be delivered with just an 8-bit machine. So I plan to alter the title screen of any given game, an then, play it on reconisable old hardware. I've been studing on how to hack the rom, but I need to know if i can get that rom out of my PC into a cartridge. I've been getting some input from irc but i wanted to get the opinion from this forum users. Thanks.
The NES has two buses, the program bus and the character bus. The program bus contains game code and data, the character bus contains character tile data. If the game you hack has character ROM (and not RAM), then you need to burn an EPROM containing your modified character data and replace the game's original character ROM with yours. For early games which use the NROM/CNROM board, this is easy because Nintendo "mask" ROMs can be directly substituted with EPROM. For later games, they cannot and you must rework the PCB which would be very difficult for a novice. For a graphics-only hack (on a NROM/CNROM game), you'll just need a 27C64 (NROM) or 27C256 EPROM and a device programmer and soldering iron. For any other hacks you'll need to rework the board and use a larger EPROM. For hacks of games which use character RAM or hacks that modify the game code, you'll need to replace the program ROM with an newly programmed EPROM as well. To get the data to program to the EPROM, you must split the data from your ROM images. NES images consist of three parts: header, program data, character data. You will need to use a ROM utility tool to view the size of program/character data so you know how to extract it. Some utilities will actually extract "PRG/CHR" data for you which is probably what you want. The files it extracts are what you need to burn.
Thank you very much for your reply. I guess i'm way over my head unfortunatly. Hacking the rom I think i can manage , now soldering and burning eproms... Dont have the hardware the knowlege or the time to learn all these fascinating tecniques. Still, thanks Calpis, I know now what it takes and It well help find someone online or in my city to help me in my art project.
Maybe with an USB Flash cart? They are not really cheap but it's the easiest way to do it and they're not hard to get, thought.
On this site a guy has hacked an old mario cartridge replacing the rom with an dil socket so that eproms can be used with your own code (or hacked code), not much detail there but probably enough to get things rolling
devzone that would work but probably only for games that share the same mapper setup, and even then it might only be usable for the same game. Example: If he socketed a mario bros cart he may only be able to use mario bros hacks on that cart. (possably other roms that used the same mapper to but its hard to say) I went through this whole thing about 6 months ago and eventually gave up on the idea. Besides just about anything these days can emulate the NES perfectly.
Yes your right that it will only play games designed for that mapper, ive been thinking about this problem for a while but have not yet figured out a way to make a cheap programmable mapper. I could through in a fast microcontroller to do this but it seems like a huge waste ! Do you have any ideas ?
It would be nice if some how after hacking an original cart with eprom, if the cart could be connected to a PC and upload to the eprom with some sort of linker kinda like the tototek flash carts
Mappers are LOGIC, so the only practical solution is to use logic to synthesize them, not emulate them with a microcontroller. Microcontrollers aren't even fast enough do that yet, nor do many MCU have the 50 I/O necessary for a universal solution. For one off solutions, people emulate the mappers with discrete chips, SPLDs or CPLD, but for reprogrammable mappers, FPGA are the ONLY option. People have been doing this since eternity with EPROM, RAM then later EEPROM and FlashROM.
It would certainly have a chance if you wrote a game specifically for it, with soft wait states at every mapper write and if you don't bankswitch during rendering. Realize that actual mapper propagation time can be as low as 20ns for complex sequential logic. I mean, have you ever tried to emulate an edge triggered register with a MCU by polling two control signals, and a 16-bit address bus at 1.78*2 MHz? Then a dozen arranged in a file? Then tried to multiplex them across two output buses relative to another set of 5.4 MHz address lines? Along side a 5.4 MHz edge triggered counter? Along side another separate 5.4 MHz multiplexer? As well as a 1.78*2 MHz binary decoder? And did all the outputs stabilize within 70ns? If so, well, then I'd say MCU might have a chance at emulating the majority of basic mappers. On the flip side, so can a handful of $2 25+yo SPLD or a single $10 20+yo CPLD/FPGA running asynchronously. A large 5 yo $20 FPGA has enough logic to store every mapper concurrently as well as the entire NES! Not really, but it's simple enough if you learn intermediate digital logic and about computer buses. First you must make the cartridge interface, ie the Tototek base unit, which emulates the SNES's buses. By toggling the signals you can make the cartridge do things, such as input and output data. Once you have the ability to read/write to SNES cartridges, then if you replaced the mask ROM with RAM/EEPROM, it's as simple as writing the desired to data to the desired address. If you replace the ROM with Flash, then you need to follow a specific programming algorithm specified in the Flash's datasheet, but other than that, same principle as RAM. EPROM is generally not used except on the earliest Atari and Famicom copiers (<=1985) before ROM density SRAM or even DRAM was affordable; programming EPROM is usually the same as RAM, but requires a special programming voltage.