Rashidi wrote:feature there aren't avail in real snes hardware,
accuracy is done in core-programming not interface-programming
While accuracy is never affected by changes or additions to the user interface, many features do require changes to the core.
Take for example, frameskipping. You have to add code into the core to bypass RTO calculation and PPU output. Or BG layer toggling, your PPU needs to check values controlled via the UI to determine if it should process certain layers or not. Debugging extensions have the same problem. You want to trace opcodes? You have to insert tracing code right before or after opcodes execute. Want breakpoints? You have to hook every read/write request to go through your UI's debugger. Even video filters often have to hook into the emulator core if you want to handle hires mode filtering properly.
Too many of these features will convolute your core emulation code significantly. These features are implemented to the preference and comfort of the emulator authors.
And then there are the freebie features that can be implemented transparently to the core: key combination macros, input playback (eg for movie playback), screenshots, additional fullscreen / windowed mode controls, etc. I don't think anyone has a problem with these features. Or at least, they shouldn't. Not everyone working on ZSNES knows how to work on the core, for a variety of reasons. So either you get the features or you don't. There's no time wasted that could be "better spent" elsewhere.