640×480 VGA • Hardware Sprites • Real-Time Physics • Fully Parallel Game Engine
Smoosh Bros is a fully hardware-accelerated fighting game implemented in pure SystemVerilog.
There is no CPU, no firmware, and no software loop of any kind.
Every frame of gameplay is produced directly in FPGA logic:
- Movement & physics
- Collision & platform logic
- Hit detection
- Shields
- Health & stock tracking
- Sprite animation
- VGA rendering
The entire game engine runs fully in parallel, synchronized to the VGA clock.
- Responsive two-player controls
- Smooth horizontal movement with acceleration
- Full jumping + falling animations
- Attack system with active hit frames
- Real-time health bars
- Stock-based life system
- Shield ability with decay, cooldown, and break
- Accurate platform collision
- Clean animation transitions:
idle → walk → run → jump → fall → attack
- 640×480 @ 60 Hz VGA output
- Hardware HSYNC/VSYNC generation
- Background + platforms stored in ROM
- Character sprites stored in block ROM
- Alpha-style transparency masking
- Pixel-accurate renderer composed in hardware
| Action | Button |
|---|---|
| Move Left | Left |
| Move Right | Right |
| Jump | B |
| Attack | A |
| Shield | Custom mapped input |
NES-style digital controllers supported through hardware interface.
set_io hsync 25 set_io vsync 23
set_io clk_in 20
set_io latch1 28 set_io latch2 43 set_io ctrl_clk1 38 set_io ctrl_clk2 45 set_io data1 42 set_io data2 36
apio install system apio install scons apio install icestorm apio install nextpnr-ice40 apio install oss-cad-suite
apio build
apio upload
Every frame, the game logic executes as a fully pipelined hardware system:
- Controller inputs are sampled
- Movement FSM updates velocity, gravity, & position
- Attack FSM activates hitboxes and frame timing
- Shield FSM performs decay, break, and cooldown logic
- Collision engine resolves platforms & hit detection
- Health/stock logic updates player state
- Animation state machine chooses correct sprite frame
- Renderer selects pixels from background/platform/sprite/mask
- VGA controller outputs the final RGB pixel
Everything runs continuously and in parallel — the FPGA is the game engine.
Planned extensions include:
- Directional hitboxes & variable damage
- Special moves and projectiles
- Additional platforms and stage layouts
- Improved UI and hit effects
- Hardware sound output
- Win/results screen
Made by Vaughan, Andrew, Jonah, and Daniel