It's been a while since I posted here, as my time has gone almost exclusively to GBHawk, but I do work on things occasionally in the background (most of which just get deleted as they don't amount to anything, but whatever.)
Most recently though, I finally made a basic C++ version of NESHawk:
It's a stripped down and simplified version, mostly just to see how fast it would go out of the box. This is about 100 fps faster then C# NESHawk, but still not really comparable to Mesen which is up around 400. It could definitely be optimized to take advantage of C++ with pointer trickery and such a bit more, as well as some more general optimizations, but I also left out the mapper system (it only does nrom) so probably these things would roughly cancel out.
So while I think the test was worth the time to do, this won't be a production core. The whole NESHawk ecosystem is too big to port over and would be a huge time sink for not even double the speed.
It does give me a good test bed to work with though, so I'll be tinkering with things over time, especially the CPU, for optimization. Hopefully it will be sort of a launching point for a SNES core. Let's see how things go.