/BeatRush

A simple rhythm game for homebrew 3DS based on Muse Dash.

Primary LanguageCGNU General Public License v3.0GPL-3.0

Beat Rush

Beat Rush (BTR) is a simple rhythm game made for the Nintendo 3DS console using devkitPro, based on the Japanese rhythm game Muse Dash. Playing this game in a real 3DS requires a homebrew loader.

Maintenance and scope notice: This is a university project. Features and termination are not guaranteed and are subject to change at any time. It is very likely this project will be archived after said university course is done.

How to play

Hit the enemies as they approach the indicators. You have one action for each lane (top/bottom).

  • When a note collides with the line on the left of the screen, press the corresponding button for its lane.
  • Accuracy is related to the moment the note crosses the center of the line compared to the moment you press the button.
  • The combo indicator increments with successive successful presses and restarts when one press is too inaccurate.
  • Score depends on your accuracy and increments with a higher combo.
  • The pace, length and difficulty of a level depend on the selected song.

Controls

During the game:

  • A/B/down/R = bottom lane
  • X/Y/up/L = top lane
  • SELECT = back to menu
  • START = pause

In menu:

  • D-pad = move
  • haptic circle (C-Pad) = move
  • A = confirm

Troubleshooting

If you don't have sound

  1. Open Citra.
  2. Click: File > Open Citra folder...
  3. Go to folder sdmc, and then 3ds. If they don't exist, create them.
  4. Create an empty file called dspfirm.cdc.
    Be careful if you have extensions hidden, to not call the file something like dspfirm.cdc.txt. This wouldn't work.

If the empty file sdmc/3ds/dspfirm.cdc is found by Citra, audio will work.

Building from source

Targets overview

This project uses GNU Make in order to build the different targets available for the 3DS homebrew scene. Use the command make [target] with one of the targets specified in the following table after making sure you comply with the requirements. Some targets have particular additional requirements.

Targets Action
3ds Builds BeatRush.3ds. 1
3dsx Builds BeatRush.3dsx and BeatRush.smdh.
cia Builds BeatRush.cia. 1
citra Builds and automatically runs citra for testing.1,2
citra-qt Builds and automatically runs citra-qt for testing and debugging.1,2
elf Builds BeatRush.elf.
release Release build, creates a cia, 3ds, and a zip file containing the smdh and 3dsx. 3

Notes:

  • 1 This requires having makerom and bannertool in your $PATH.
  • 2 This requires having citra installed and in your $PATH.
  • 3 Requires zip in your $PATH. If you are on Windows you will need both zip and libbz2.dll in your $PATH.

Instructions for 3DSX and ELF

Unix-like / macOS

  1. If not already available, install GNU Make.
  2. Install devkitPro, making sure the DEVKITPRO and DEVKITARM environment variables are set.
  3. Run make 3dsx or make elf in the root directory. The recommended compiler is GCC.

Windows

Use a platform such as MinGW or msys2 in order to install GNU Make and the GCC compiler (recommended). Note that devkitPro has installation instructions specific to Windows, including a graphical installer. Once the toolchain has been setup, follow the instructions for Unix-like systems.

Instructions for CIA and 3DS

All platforms

  1. Follow instructions for 3DSX and ELF.
  2. Install makerom and bannertool, and then add them both to your $PATH.
  3. Run make cia or make 3ds in the root directory.

Instructions for release

Unix-like / macOS

  1. Follow instructions for CIA and 3DS.
  2. Run make release in the root directory.

Windows

  1. Follow instructions for CIA and 3DS.
  2. Install zip and libbz2.dll, and then add them both to your $PATH.
  3. Run make release in the root directory.

Cleanup

To remove compiler generated files, run make clean.

Launching

In order to launch the game in your PC you will need an emulator such as citra. Citra supports all formats generated. A shorthand for building and launching citra is available through the make citra command.

If you want to load this file in an actual 3DS, you will need homebrew capabilities. You have several options: