Añadir nuevos recursos a la rom (nuevas pantallas, nuevos personajes, nuevos ítems) es muy complicado, ya que tienes que modificar mucho código asm para poder acceder al recurso, cargarlo y manipularlo durante la ejecución del juego.
Modificar un recurso existente es bastante más factible, porque solo cambias las características del mismo (colores de una pantalla, estructura de la pantalla, sprites del personaje o ítem, ...). De modo que "engañas" al juego haciendo pasar el recurso cambiado por el recurso original, y no se da cuenta de que ha cambiado porque la ubicación de este en la rom y la forma de manipularlo es la misma.
En cualquier caso, todo este proceso no es fácil y no existe una herramienta mágica que cambie cualquier juego. Para cada juego el hacker tiene que aplicar unos procedimientos concretos, mucha depuración, ingeniería inversa, prueba y error, y así poder hacer los cambios que había pensado. Y generalmente estas cosas se suelen hacer con los juegos más "famosos" porque hay muchos interesados.
Aunque también es verdad que hay coincidencias de código y algoritmos, lo que facilita el proceso en juegos que son parecidos. Por ejemplo, los algoritmos de compresión de mapas y textos coinciden en muchos juegos, con lo que aveces si se puede crear una misma herramienta/editor para varios juegos concretos.