You can do this with TCL/TK. Everything, including a virtual filesystem, can be packaged in what are known as "Starkits" & "Starpacks". You could even take it a step further & use the the Tcl variant known as the "Expect" Language to get the ROMs from elsewhere at execution-time, to avoid distributing the ROMS, while still distributing a combo of an executable emulator & .atr package. TCL/TK is a very flexible prototyping language that is very easy to learn if you know Atari BASIC. It is a very mature & stable language, and while not the flavor of the week, as far as languages go, it can solve many, many problems very effectively. Highly recommended, particularly if you are in the market for a language to mess around with. You can create fully cross-platform software, with GUIs, in as much time as it takes to write an Atari BASIC program. It is interpreted, like BASIC (making it very easy to learn), however, when packaged it appears to the user as a standard executable or group of executables & data in a virtual filesystem. One of the great beauties of the language is that the same code will run on Windows, Mac, & Linux, without modification. If cross-platform compatibility is less of an issue, it is also very easy to use this language with hooks to C code or Assembly Language, to speed it even further, just like you used to do in BASIC with ML. Lots of people will go on & on about other, newer languages, but TCL/TK is great when you need to get things done Fast; it is especially useful for meeting tight deadlines. I am very happy that I had taken the opportunity to get acquainted with it!
The Active State Distribution is great for Windows.