PokemonNiosV::overview();
Built with AnRi1202, where I handled the game engine, rendering pipeline, and animations, and they handled the map system, audio, and PS/2 input. A Pokémon RPG written in C on bare-metal DE1-SoC, with no OS, game engine, or drivers. I researched the actual formulas Nintendo and Game Freak use (EXP curves, catch rates, type effectiveness, damage calculations) [1] and implemented them to make gameplay match the real games.
With no OS to manage timings, everything runs from a single main loop: a 36-state machine handles the overworld, battle system with status effects and party management, catching, PC storage, and a Pokédex across 16 Pokémon and 43 moves, with hardware driven by direct register writes. All game data lives in compile-time static lookup tables, with no heap allocation.
Graphics write RGB565 pixels directly onto a double-buffered VGA framebuffer, at a deterministic 20 fps so all animations, text, and effects resolve within one frame across all 36 game states. Sprites are sourced from community resources [2–5] and rendered with colour keying for transparency; Pokéball throw arcs use Quadratic Bézier and projectile motion formulas.