I've made it so that `Graphics.update` pauses the Ruby VM and returns to the libretro frontend. Once the libretro frontend calls `retro_run()` again, the Ruby VM resumes. This allows the libretro frontend to control the rendering loop.