I've read into it a little and it seems the Eclipse engine does something more akin to
high-level emulation.
From the developer themselves: (he also talks about the disadvantages of porting vs emulation here)
Quote:
"We set up our Eclipse Engine, and we set up hardware simulation modules, and we convert using source elements provided by the publisher, — their original game to our format. So you have Mega Man running in our hardware module within the Eclipse Engine. The idea being, once it works in Eclipse, we forward Eclipse somewhere else, and it just works, for the most part."
"USG: So instead of the Eclipse Engine being an emulator running a ROM dump, you're basically feeding source code or ROM or whatever into something on your end, not on the user end, and that's putting out an executable for a specific platform."
"Frank: That's about right. We have hardware-specific modules that we're running within our engines. I'm not intentionally being cagey with the approach we took with Mega Man, it's just really complicated. We did basically recompile it into a new format that runs in our engine."
This is in line with what Ycobb was saying.
From this
reddit threadQuote:
As others have found, replacing a ROM with another game of the same mapper crashes MMLC, but replacing a ROM with a ROM hack of that game seems to partially work. Levels, music, and sprites get replaced, but code related changes don't seem to take effect. This may mean that the developers at Digital Eclipse statically recompiled the 6502 machine code and stored it elsewhere. This would be similar to how emulators like Dolphin dynamically recompile machine code from one architecture to another, except the recompilation was pre-done, instead of being on the fly. More research needs to be done into this.
MMLC has a name and pattern table mapped in memory, which work exactly like the they do on the NES. This supports the idea that the NES's PPU is being emulated.
MMLC also seems to map out the NES's 2 kilobytes of memory, and when comparing the location of variables, such as Megaman's weapons and health, in the normal NES games over their location in MMLC, they are stored in the exact same location relative to the start of the NES's memory.
In short and from my layman's understanding, it seems the Eclipse Engine intends to emulate NES hardware with the
intention of running the source code natively. Basically, they want to provide a platform to which they can port NES games that they can then make work with any hardware. It's similar to an emulator in the end result, but behind the scenes a lot of the busy work is done on compile time instead of run time, which would lessen user load and makes it so you only need to port the engine to a new platform instead of all the individual ROMs.
Now, what should you as a consumer care about all this? Not a single thing, since it doesn't affect the end product or your enjoyment of it.