Usage as a library
This might a bit to early into this project to suggest, but I wanted to at least start the discussion and get your thoughts on this; have you considered library usage of this project?
Specifically, I'm interested in a few things that are not currently exposed in the public api, that will allow using this library in order to port old Windows games to other platforms!
I've actually done something similar with GameBoy games here: Rustic Yellow & Rustic Crystal.
The idea is quite simple: slowly port the game to Rust by hooking in and overwriting specific functions. Those functions are written in Rust, and can manipulate the emulator in any way they see fit. They can then use other Rust crates, load files from the file system, etc. New features can also easily be added like this.
I started experimenting with this in a branch here: https://github.com/LinusU/retrowin32/tree/deimos-rising
I still need to try calling back into the exe (should be doable with call_x86), and writing to global variables (should be doable via machine.memory.mem())
Would love to hear your thoughts! 🍻