A e-amusement server emulator, targeting Dance Dance Revolution A
Go to file
2019-09-02 10:37:53 +09:00
.circleci Circle CI init 2019-08-30 01:55:36 +09:00
butterflycore fix matixx saving 2019-09-02 10:37:53 +09:00
butterflydao handle for a card registered in database but doesn't have a ddr profile 2019-08-31 19:00:56 +09:00
butterflymodel Add basic api management function 2019-08-31 13:31:58 +09:00
butterflyserver fix matixx saving 2019-09-02 10:37:53 +09:00
gradle/wrapper init support for gitadora matixx 2019-08-27 11:13:00 +09:00
lib Readme update, and include the diff to the Xom version included 2019-04-12 22:56:38 -05:00
.gitignore Use a Kotlin kbinxml implementation instead of shelling out to Python for the conversions 2019-01-18 15:28:27 -06:00
build.gradle api get set matixx playerboard 2019-08-28 10:52:40 +09:00
gradlew Initial commit, just stubbing out a bunch of very basic architecture and request handling stuff 2019-01-03 01:44:50 -06:00
gradlew.bat Initial commit, just stubbing out a bunch of very basic architecture and request handling stuff 2019-01-03 01:44:50 -06:00
LICENSE Initial commit 2019-01-03 01:42:12 -06:00
README.md Update README to prepare for new release 2019-08-24 18:01:01 -05:00
settings.gradle Remove butterflywebui because api integrated in game server 2019-08-31 17:28:00 +09:00

butterfly

An e-AMUSEMENT server emulator, targeting Dance Dance Revolution A.

What is this?

This is butterfly, an e-AMUSEMENT server targeting Dance Dance Revolution A. This is a mostly-fully-featured server, intended for local usage.

Features:

  • Full support for profile creation, score saving, options saving, rivals, etc.
    • Carding in works as expected, and any number of profiles is supported
  • Forced full unlock (currently event progress is not tracked / everything is fully unlocked already)
  • Can run on Windows/Mac/Linux

How do I use it?

Requirements:

  • Java 8 or above needs to be installed. Most users should already have this, but if not, download the latest JRE for your platform

Usage:

Put the following in a file called run_server.bat if on Windows, or run_server.sh if on Linux/Mac. The path, including YOUR_USERNAME, can be anything, as this is where the database file will be saved. Save and run the file:

java -Ddb_path="C:\Users\YOUR_USERNAME\Desktop\db.sqlite" -jar butterfly-1.1.0.jar

At this point, the server should be running. Connect your game and play! Set the services URL to http://localhost and turn off url_slash.

How do I change webUI-only options (dancer, rivals, fast/slow judgement, etc.)?

Unfortunately, I did not get around to making a web UI for this server. I might in the future. In the meantime, you'll need to manually edit the database to change these options... any SQLite database browser will work.

To change your options, find your user under the ddr_16_profiles table and edit whichever columns you'd like. Below are the valid options for each column you probably care about:

dancer_character:

    RANDOM,
    RANDOM_MALE,
    RANDOM_FEMALE,
    YUNI,
    RAGE,
    AFRO,
    JENNY,
    EMI,
    BABYLON,
    GUS,
    RUBY,
    ALICE,
    JULIO,
    BONNIE,
    ZERO,
    RINON,
    RYUSEI_EMI,
    RYUSEI_ALICE,
    RYUSEI_RINON

option_arrow_skin:

    NORMAL,
    X,
    CLASSIC,
    CYBER,
    MEDIUM,
    SMALL,
    DOT,
    BUTTERFLY

option_screen_filter:

    OFF,
    LIGHT,
    MEDIUM,
    DARK

option_guidelines:

    ARROW_TOP,
    ARROW_CENTER

option_judgement_layer:

    FOREGROUND,
    BACKGROUND

show_fast_slow_results:

    0,
    1

If you'd like to set your weight, enter your weight in kilograms in the weight column.

If you'd like to set your rivals, you can edit the rival_1_id, rival_2_id, or rival_3_id columns to contain the ID of the rival user, meaning the value from the id column of the user.

What's next?

Probably nothing. I'm mainly releasing this because I don't see myself working more on it in the future, but I thought it'd be helpful for others. I mainly coded it as a learning exercise, and I suspect that the "juicy" bits of this code won't be relevant for much longer anyway. Maybe I'll make a web UI in the future but don't hold me to that.

Credits

  • skogaby: main author
  • dogelition_man (https://github.com/ledoge): author of Kotlin kbinxml and card number conversion code
  • Various other devs for tips/pointers
  • Various other projects that I reversed for figuring out packet encryption/compression