Hacker News new | past | comments | ask | show | jobs | submit login
How to Program an NES game in C (nesdoug.wordpress.com)
99 points by janvdberg on Dec 29, 2015 | hide | past | favorite | 7 comments



If you're interested in programming Gameboy Advance games:

While in college, one intro course on lower-level computer programming had a few projects for programming for a Gameboy Advance emulator. This site was heavily used for reference and guidance: http://www.coranac.com/tonc/text/toc.htm

Also, here are some materials (from the course) and even examples of created projects:

_

Related Course Materials

1. Main Reference: http://www.coranac.com/tonc/text/toc.htm

2. GBA Installation: https://github.com/nuppan/Georgia-Tech/tree/master/2nd%20Yea...

2. Another site: http://www.loirak.com/gameboy/gbatutor.php

_

Projects

1. "Duckhunt" - https://github.com/jabelman/duck_hunt-gba

2. "Pacman" - https://github.com/zjhzyyk/gba-pacman

3. Video of "The Snuggler" - https://www.youtube.com/watch?v=wxnEY3RRPp4

4. Video of "Samurai Jack" - https://www.youtube.com/watch?v=fgIeKCxAfSk


Is it possible to somehow "copy" an NES game that you've compiled onto a real NES cartridge so that it can be played on a real NES? That could make this an incredibly fun hobby. Especially as a parent of kids who actually enjoy NES and SNES games.


The simplest way to deploy your homebrew ROMs to a real NES is to use something called a "flash cartridge"[1]. This is equivalent to a real NES cartridge except it is backed by rewritable flash memory instead of a permanent ROM. It contains all of the necessary glue logic[2] so the console can't tell the difference. You can rewrite the flash if you connect the cart to your computer via USB.

The magical thing to google if you want to do your own research is "NES flash cart".

The "EverDrive" that aji suggests is, indeed, an example of a flash cart. It may or may not be the best one for the NES - I honestly don't know, all of my experience is with the GameBoy.

dpflan's approach of erasing and reprogramming a REAL NES cart is also possible, if you enjoy pain and suffering in the name of being lavishly historically accurate. (I know I do sometimes.)

  [1] https://en.wikipedia.org/wiki/Flash_cartridge
  [2] https://en.wikipedia.org/wiki/Memory_management_controller


The NES EverDrive is probably a good bet: http://shop.krikzz.com/EverDrive-N8-NES-EDN8NES.htm



Yes, a few folks in the NES homebrew scene have managed it. Here's a cartridge my team released this year: http://starversus.com (currently sold out, hope to have more soon) and there's many more at RetroUSB: http://www.retrousb.com/index.php?cPath=30&osCsid=ff2d40cb26...


For testing, some of the available flash or RAM cartridges are good bets. For distributing in small hand-built volumes, an NES cartridge is really just some parallel storage for the 6502 CPU(be it an EPROM, or a FLASH 29-series ROM (easier)) and another chip for the CHR graphics on the PPU bus (a similar ROM). RAM may be used in place of CHR ROM, and bankswitching "mappers" are commonplace, as the 6502 can not address much as-is.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: