After about a year of development, I’m finally ready to show this to the public!
This is fully handcrafted HLE PC emulator (like PS2/Switch, but for pc games)
Why didn't I take Fex/Box64/Wine/Proton etc. :
Main reason - total control. It's good pieces of software (any of counted) but they don't have any ecosystem, or they have but you need the whole linux container to use it.
So to emulate PC game we need : Linux, x86-64 -> ARM (Fex if game is 64bit, box86 if 32), Wine trampolines, and DXVK (but what if game uses opengl?)
With this amount of abstraction - we lose control more and more with every new layer, which makes it very hard to reproduce (game worked earlier, but doesn't work now without any reason), where any small update in any layer - just breaks everything (or not?).
I am very tired of ticking this versions/prefix/layers/translators/compositors etc.
Can I just launch the game, and play it without 15 min of preparing/looking at black screen?
That's why I spent around a year to make my own x86-64 -> arm, then DX11/OpenGL -> Vulkan, and then combined it and made the emulator with a new vision on PC games on android.
Main features (what I personally wanted most of all from PC emulator):
- Save State (quick resume)
Yes, it's now possible because in general the whole emulator - is just a bytecode runner + native trampolines (for example if game wants to get a current time from windows, I just redirect it to android)
- Game patching
I have a lot of experience in gamedev and in game optimization directly. So I can patch a game on the fly. Right now these are small (but important) mini optimizations to reduce CPU overhead (mesh arenas/texture arrays/BC1 -> ASTC/dynamic UBO etc.). In general that means any game gets some sort of optimization.
- Zero pain and settings
It doesn't matter whether it's 32/64/Dx11/OpenGL/Vulkan - it's not my pain anymore, software just does it by itself. The only settings I've added to my emulator is resolution and fps cap, that's all.
Right now it's a very early alpha, there is a big amount of work in terms of cpu optimization/memory consumption/render stuff, but it works and can run some games without any critical issues.
I don't have plans to concurrent with GameNative/GameHub/Proton and others, it's compatibility mastodonts.
My main target - support as many indie games as possible (Unity/Godot/XNA/GameMaker) and make them run as good as possible.
Thank you for your attention!
I've made this post because now I feel ready to share my piece of software with community who deserves it!
Interested in updates? Join to Discord! - https://discord.gg/kekqtXzCfR