It is highly recommended to read the report to get a light introduction to Game Boy emulation. The report is relevant, eventhough you want to contribute to another emulator, or create your own.
If you've read the report and want more explicit details, have a look at the Pan Docs.
If you are looking to make a bot or AI, you can find all the external components in the PyBoy Documentation. There is also a short example or our Wiki page Scripts, AI and Bots. If more features are needed, or if you find a bug, don't hesitate to make an issue here on GitHub, or write on our Discord channel.
We have now moved away from PyPy, and PyBoy fully supports CPython ("regular Python"), by the use of Cython (Python-to-C compiler). Performance has also increased dramatically.
The code base is still pure Python, which means it will still run in CPython and PyPy (although slowly). Cython is an addition, where we can compile the code to run 100-200 times faster.
To get started, look at the installation instructions. We support: macOS, Raspberry Pi (Raspbian) and Linux (Ubuntu).
At the Wiki page, you will also find out how to interface with PyBoy from your own project: Wiki.