based on arcemu with much modifications and cleanups