SNES Lua can access full ROM by specifying the full 24 bit address, so that's a moot point from my point of view. It's just a matter of finding the address. The actual SNES program has more trouble because it's a 16 bit system and the address prefix of the data needs to be loaded.
Savestates (in snes9x) are kept in the temporary directory. If you want them to persist, load it and then immediately save to a player's slot. While I COULD give you the filename and then you could copy it, that does defeat the purpose of being anonymous.
As for iup, if it's available as an extension to Lua, you can load it. I'm taking the position that the emulator itself should have the absolute minimal set of add-ons. What's what
LuaForge is for. I did take a look at "iup" before, and it needs some kind of "Cd" dependency I don't have a clue what it wants and there's nothing in the readme or website documentation. Not to mention the source code tarball has some very broken permissions. Nice.