SkyGameboy is another Gameboy emulator. It is a fun project for learning before all.
It have been written using C++17 and code readability and maintainability in mind.
It can run Tetris, Super Mario Land and lot of others games. It is not feature-complete, some games won't work. It also still have bugs.
The emulator itself live in src/backend.
There is another folder src/frontend. The frontend is a set of interfaces and
implementations which define Display, Input and Audio. You can define your own frontend
as needed by inheriting the interfaces and providing your own implementation. You then
need to update main.cpp to use your new frontends.
Keybindings are:
WASDfor Up, Left, Right and DownJfor Button AKfor Button BEnter/returnfor START'for SELECT (It is just left of START)