you dont port it you wrap it.
you can put anything in an rl environment. usually emulators are done with bizhawk, and some lua. worst case theres ffi or screen capture.
Right, my thought was that this would be way too slow for episode rollout (versus an accelerated implementation in jax or something), but I guess not!
well thats the golden issue with rl, sample efficiency. it is env bounded, so you want an architecture that extracts the max possible information from each collected sample, avoiding catastrophic forgetting, prioritizing samples according to relevance
My first version of this project 5 years ago involved a python-lua named pipe using Bizhawk actually. No clue where that code went