bSNES-Mercury core for libretro with balanced optimization.
It's used to run Super Nintendo games.
bSNES-Mercury is a fork of Higan, aiming to restore some useful features that
have been removed, as well as improving performance a bit. Maximum accuracy is
still uncompromisable; anything that affects accuracy is optional and off by
default.
Changes to upstream:
- The biggest change is getting the interface sane, which is accomplished
through libretro.
- Another change is the restoration of HLE emulation of some special chips,
to improve performance and reduce reliance on those chip ROMs (they're not
really easy to find). Chips for which no HLE emulation was developed
(ST-0011 and ST-0018) are still LLE.
- A seven-line function in sfc/memory/memory-inline.hpp was replaced, which
speeds up ROM load by roughly a factor 6 (1.2s -> 0.2s).
- A section in sfc/memory/memory.cpp was specialized for the common, easy,
case. This speeds up ROM load time by about a third.
- A fast path was added to various parts of the CPU bus, improving framerate
by about 2.5%.
- 'inline' was added all across the PPU subclasses. Framerate went up by 20%
from such a trivial change!