osu!fpga
An osu! like rhythm game on DE2-115 FPGA.
Fang Lu, Xutao Jumbo Jiang
Overview
This project reproduces the major gameplay experience of the desktop rhythm game osu! on the DE2-115 FPGA development board. The user plays the game using a pointing device such as a USB mouse and a keyboard device such as a PS/2 keyboard. The graphics will be displayed using a VGA-capable monitor. It supports all the fundamental gameplay elements, including hit-circles, sliders, spinners and judgement system.
Features
Game Functionalities
- Song selection view
- Gameplay view
- Score report view
- Beatmap parsing
- Animated hit objects
- Song preview
- Scoreboard
- Pause
- Mods
- Settings
Input devices
- USB Mouse driver
- PS/2 Keyboard driver
- Wacom tablet driver
- USB hub support
Graphics
- VGA output driver
- Graphics service & task distributor
-
Bitmap renderer
- Bitmap resizable copy
- Layer blending
-
Vector renderer
- Line
- Elliptic Curve
- Bezier Curve
- SVG paths
-
Font renderer
- Fixed-width bitmap font
- Variable-width bitmap font
- Variable-width vector font
-
Effects renderer
- Particles
- Pointer trails
Audio
- Audio driver
- Multitrack mixdown
Miscellaneous/Utilities
- Timing
- PNG Parsing
- MP3 Parsing
- Zip parsing
TODO
-
11/8 - 11/14
- PS/2 driver setup
- Audio driver setup
-
11/15 - 11/28 (Thanksgiving)
- Graphics modules and submodules
- Bootstrapper and main game program
- Modules timing synchronization
- File IO support
-
11/29 - 12/5
- Baseline testing & debugging
- Extra graphics
-
12/6-12/13
- Extra game features
- Extra drivers
- Product testing & debugging