- bmonkey325 158 days agoI would think you would still need some sort of microVM or container that would act as the runtime. I get that MAME is probably too large now serving so many masters.
- bmonkey325 158 days agoI would think you would still need some sort of microVM or container that would act as the runtime. I get that MAME is probably too large now serving so many masters.
However, there is potential for tooling that makes it easier to generate a crafted solution for a particular game/program. NES games may be too complex for a crafted solution. But if a program's execution can be characterized in a way to make most of it machine translatable, leaving only a few trouble areas to patch up (and implementing I/O integrations), then a recompilation could be practical.
Some categories of program are likely even harder than most NES games. For example, I've seen C64 games with self-modifying 6502 code. But in one case, the self-modification technique is applied consistently throughout (possibly a compiler optimization) and can theoretically be characterized and taken into account.
I occasionally tinker with the idea of recompiling a particular 8086 game. But I sometimes feel that it's almost cheating to pick it as a target, since it's so ridiculously suited for such an endeavor. :) It's tiny (far smaller than any NES game), has very simple I/O needs, and was apparently compiled in Turbo Pascal without any sort of optimizations, thus producing machine code that is immensely straightforward. Maybe someday I'll get around to it.