News: 11 March 2016 - Forum Rules

Author Topic: Changing/creating character movements in NES Roms  (Read 2890 times)

TheWhipperSnapper

  • Jr. Member
  • **
  • Posts: 24
    • View Profile
Changing/creating character movements in NES Roms
« on: July 29, 2012, 09:09:44 pm »
I would like to know where in the ROM or the RAM would I find character movements and behaviors so I can modify them or even make new behaviors? I know now that RAM values that fluctuate cannot be made permanent by writing to those bytes that change and that ROM addresses can not be written to by the computer. So between what addresses in the ROM will you find most character, enemy, object and sprite movement?

FAST6191

  • Hero Member
  • *****
  • Posts: 3279
    • View Profile
Re: Changing/creating character movements in NES Roms
« Reply #1 on: July 30, 2012, 11:19:56 am »
I am not that well versed in the NES and you seem to be confusing several concepts but the proper answer is just about anywhere in the ROM is where graphics can/will be found and that goes for just about every game on every console give or take some of the really weak things or really simple "game making" programming languages.  Many people will just bust out a tile editor and find/snatch the palette from the game to find the graphics they want but there are considerably more advanced techniques.

The graphics themselves are usually handled with the PPU although NES mappers are similar to their SNES cousins in that they can add extra abilities the stock NES never had, http://nocash.emubase.de/everynes.htm#pictureprocessingunitppu has some more and there are hundreds of other documents on this site handling a lot more.

As for how they work....the link above should take basic handling but there are any number of programming constructions that can control screen locations that may have to be changed and NES games are of a vintage that they were probably written with a lot of tight ASM loops to get it done.

"Behaviours" can either be tied to AI (the classic example would be the behaviour of pac man ghosts- http://gameinternals.com/post/2072558330/understanding-pac-man-ghost-behavior ) or a basic animation using the PPU (indeed AI and basic animation may be one and the same for a lot of games of then and to this day). Although approaching things from a fairly high level is useful and knowing what happens on screen is near mandatory for such efforts it is best to find the movement by watching the PPU do what it does and working backwards from there.

"ROM addresses can not be written to by the computer"
Most of ROM hacking is concerned with writing to the ROM addresses and game genie codes are instructions to replace sections of the ROM that the console sees. You are correct though that for the most part is fairly unchangeable at runtime although I can not claim much knowledge of the more exotic mappers where that might change a bit.