Commit Graph

9 Commits

Author SHA1 Message Date
nattthebear ba52e4aaf5 rainy day project: load waterbox cores in the first 2G and compile with mcmodel=small
5-10% speedup in some cores.

implementing this would also include changes to musl buildscript which were not committed here
2020-06-03 15:32:41 -04:00
nattthebear d06ed05929 waterbox - track writes for smaller savestates
The waterbox system now uses host os facilities to track whether memory has been written to, to automatically choose what thing to savestate.  This results in a large size decrease for some cores, like snes9x or gpgx (when running cartridge games).  Doesn't do much for cores that were already memory efficient, or for bsnes because of libco compatibility issues; but those cores don't regress either.
2020-06-03 07:13:40 -04:00
nattthebear 21cdf5120b
Revamp waterbox build environment and runtime. (#2027)
Create an all new waterbox build environment:
WSL2 + Ubuntu 20.04 LTS (Other linuxes may work)
Musl libc with waterbox customizations
LLVM's libclang-rt, libunwind, libcxxabi, libcxx
Static linking to elf files

Compared with the old system, this is easier to set up a dev env for and easier to update in the future. The executables are larger but produce smaller savestates due to static linking. The modern toolchain means advanced library features and language features that sometimes appear in some upstream cores will be reusable.
2020-05-20 15:34:24 -04:00
nattthebear 626de2d7c8 waterbox: add guard pages to libco stacks 2017-06-11 20:10:37 -04:00
nattthebear 67ff767f95 libsnes: recreate the emu cothread at the end of init, to avoid pointer poison that was breaking xor state consistency. Big todo: all init functionality really needs to happen from the main thread, as there are many syscalls that reenter managed in that code, and reentering managed from a cothread stack is a Bad Thing 2017-06-10 19:51:59 -04:00
nattthebear dde953d612 fix a libco issue that was breaking xorstate consistency 2017-06-10 18:20:58 -04:00
nattthebear f0ec682314 snes runs! sorta. 2017-06-10 14:16:25 -04:00
nattthebear 36be9e9fc7 snes: waterboxification phase 2 2017-06-10 14:16:25 -04:00
nattthebear d8c19f3787 waterbox libco (not yet tested) 2017-06-09 19:54:20 -04:00