Nice overview of the various things seen on the SNEShttps://en.wikibooks.org/wiki/Super_NES_Programming/SNES_memory_map
Mixture of both.
Generally a ROM will reference the location that the system would have the ROM appear in RAM after any fancy addressing/banks/pages/windows/whatever are taken care of.
Floppy disc, CD/dvd/optical and later in history the DS would have a read command that references the ROM addresses (give or take sectors, headers and the like), as well as usually a file system (though some homebrew devs will invent a file system on older devices).
You can however have calculated pointers where a game will have a base pointer and add data found in the ROM to the value to generate the final address. In some ways this can be a bit slower but does afford a few more options for some approaches; if you have taken programming far enough to learn about linked lists then that would be an example, imagine say jumping around in a text field and having to read off pointers when you could say take base pointer, multiply pointer length by pointer value I need and then add that value to the pointer and grab that new location.
WRAM is generally a section of memory rather than the whole memory system. I don't know what goes for games punting a section of code into WRAM and running from there offhand (was seen on the GBA and I presume it is possible but the esoterics of the SNES are not my thing).