The author started developing a Nintendo Switch emulator using Zig but switched to C++ due to preference.They utilized Hypervisor framework on their M1 Apple Silicon to run code at near native speeds.The emulator employs a HLE approach, recreating the OS to act as a bridge to the host's OS for faster emulation.Implementation began with the kernel, handling SVCs from the game, and progressed to essential services like display handling.Understanding GPU emulation complexities, the author used Apple's Metal API for graphics rendering.Challenges in GPU emulation included managing memory resources and implementing a cache for reusing textures and buffers.Tests were conducted with basic GPU applications to understand GPU features and improve emulation gradually.The emulator named Hydra made progress, achieving graphics rendering for games like Puyo Puyo Tetris through custom patches.Further development involved fixing CPU emulation bugs to enable games like The Binding of Isaac and Cave Story+ to run.Ongoing efforts include addressing game-specific issues to enhance compatibility and working on adding audio support.