An 8-bit retro-style map exploration and landmark hunting game built for the Rabbit Pie board (Raspberry Pi Pico/RP2040, 128x64 Mono OLED, joystick, buttons, and I2S DAC audio).
The game renders a vector map of Tama Art University Hachioji Campus using real OpenStreetMap (OSM) data. While playing, a custom-synthesized swing BGM loops in the background on the second core using the Mozzi audio library, setting a cozy yet hectic mood as you race against the clock to complete your campus schedule!
| Gameplay & Compass Navigation | Game Over & Total Distance | Volume Adjustment HUD |
|---|---|---|
![]() |
![]() |
![]() |
| Inputs | Action | Function |
|---|---|---|
| Joystick | Tilt | Scroll Map: Move camera with smooth snappier acceleration and inertia sliding. |
| SW0 (Button 1) | Hold + Joystick X | Rotate Map: Turn the map direction. Camera inertia stops while rotating. |
| SW1 (Button 2) | Tap (Release) Hold + Joystick Y |
Reset View: Teleport back to campus center (-650, 300) and reset rotation. (Plays sweep sound) Volume HUD: Toggles volume adjust meter (0-10) by moving joystick Up/Down. (Plays blips) |
| SW2 (Button 3) | Press | Zoom Cycle: Switches map magnification between 0.5x ➔ 1.0x ➔ 1.8x. (Plays blip) |
| SW3 (Button 4) | Press | Skip Target: Force skip the current target to get a new random landmark. (Incurs a -5.0s penalty and plays warning buzz!) |
💡 Gameplay Tips:
- The campus is vast! Switch to
0.5xzoom out to locate targets, and zoom in to1.8xfor precise landmark approach.- The joystick features realistic friction and sliding mechanics. Let go of the stick to slide smoothly to a stop!
-
Locate Target Landmarks
- The HUD on the top displays your next target (e.g.
GO TO: Library). - If the target is off-screen, a pointer guide arrow will blink at the screen border, directing you towards it. Follow the arrow!
- The HUD on the top displays your next target (e.g.
-
Player Crosshair
- The crosshair in the center represents your player coordinate. The map scrolls under you as you move.
-
Proximity Alerts
- Moving close to any major building (e.g. Sekaido, Library, Lecture Hall, Canteens, Club Bldg, Liberal Arts) displays a
"Near: [Building Name]"popup box.
- Moving close to any major building (e.g. Sekaido, Library, Lecture Hall, Canteens, Club Bldg, Liberal Arts) displays a
-
Collect Score & Add Bonus Time
- Arriving at the target building centroid (within
15.0meters) triggers a 3-note victory chime and awards a point (S: [Score]). - Reaching a target awards a time extension that decays exponentially as your score increases, down to a tight minimum of
1.5seconds:$$\text{Time Bonus} = 1.5 + 8.5 \times e^{-0.22 \times \text{score}}$$
- Arriving at the target building centroid (within
-
Countdown & Game Over
- You start with a 45.0 seconds countdown. The timer decreases by
0.1sprecision. - When the timer falls below 5.0 seconds, a retro warning tick sound beeps on every second boundary.
- Reaching
0.0striggers Game Over, stopping the BGM and playing a sad 8-bit sliding down sound. - Press SW1 to restart the game from scratch!
- You start with a 45.0 seconds countdown. The timer decreases by
- Input Pins:
- Joystick X-Axis:
GP26 (A0) - Joystick Y-Axis:
GP27 (A1) - SW0 (Rotation Mode):
GP19 - SW1 (Reset / Volume):
GP18 - SW2 (Zoom Cycle):
GP17 - SW3 (Skip Target):
GP16
- Joystick X-Axis:
- SSD1306 Monochrome OLED:
- Resolution: 128x64 pixels
- Bus: Hardware I2C (SDA =
GP4, SCL =GP5)
- Mozzi Audio Output (I2S DAC):
- Pins: BCK =
GP20, WS =GP21, DATA =GP22 - Noise Suppression: GP23 is driven
HIGHto configure the power IC to PWM mode.
- Pins: BCK =
- Open the Arduino IDE on your Mac.
- Select File -> Open... and load tau_dash.ino.
Make sure the Raspberry Pi Pico/RP2040 board package by Earle F. Philhower, III is installed and selected:
- Tools -> Board -> Raspberry Pi Pico/RP2040 -> Raspberry Pi Pico
- Tools -> CPU Speed -> 133 MHz
Install the following libraries using Sketch -> Include Library -> Manage Libraries...:
- U8g2 (OLED Graphics)
- Mozzi (Audio synthesis)
- Connect your Rabbit Pie board via USB.
- Select the serial port in Tools -> Port.
- Click the Upload button to build and flash!
This project is open-sourced under the MIT License.


