Minor adjustments to the readme formatting, add some todos.
This commit is contained in:
parent
74c0407173
commit
90fd8ad5d8
157
README.md
157
README.md
@ -1,5 +1,5 @@
|
|||||||
Introduction
|
# Introduction
|
||||||
------------
|
|
||||||
A collection of programs for working with various games in the BEMANI series. This
|
A collection of programs for working with various games in the BEMANI series. This
|
||||||
could be untangled quite a bit into various modules that provide simpler pieces.
|
could be untangled quite a bit into various modules that provide simpler pieces.
|
||||||
However, this is how it ended up evolving over time. This repository includes
|
However, this is how it ended up evolving over time. This repository includes
|
||||||
@ -20,15 +20,15 @@ for being good RE partners for several games, and sharing good finds. Thanks to
|
|||||||
helvetica for helping with game RE and retweeting cute anime ladies onto my feed
|
helvetica for helping with game RE and retweeting cute anime ladies onto my feed
|
||||||
every goddamn night.
|
every goddamn night.
|
||||||
|
|
||||||
2dxutils
|
## 2dxutils
|
||||||
========
|
|
||||||
A utility for unpacking and repacking `.2dx` files. This isn't the best utility and
|
A utility for unpacking and repacking `.2dx` files. This isn't the best utility and
|
||||||
I think there are more complete and more accurate programs out there. However,
|
I think there are more complete and more accurate programs out there. However,
|
||||||
they all lack source as far as I could tell, so I developed this. Run it like
|
they all lack source as far as I could tell, so I developed this. Run it like
|
||||||
`./2dxutils --help` to see help output and determine how to use this.
|
`./2dxutils --help` to see help output and determine how to use this.
|
||||||
|
|
||||||
api
|
## api
|
||||||
===
|
|
||||||
Development version of this repository's BEMAPI implementation. Run it like
|
Development version of this repository's BEMAPI implementation. Run it like
|
||||||
`./api --help` to see help output and determine how to use this. Much like
|
`./api --help` to see help output and determine how to use this. Much like
|
||||||
"services" and "frontend", this should be pointed at the development version of
|
"services" and "frontend", this should be pointed at the development version of
|
||||||
@ -40,14 +40,14 @@ Do not use this utility to serve production traffic. Instead, see
|
|||||||
`bemani/wsgi/api.wsgi` for a ready-to-go WSGI file that can be used with uWSGI
|
`bemani/wsgi/api.wsgi` for a ready-to-go WSGI file that can be used with uWSGI
|
||||||
and nginx.
|
and nginx.
|
||||||
|
|
||||||
arcutils
|
## arcutils
|
||||||
========
|
|
||||||
A utility for unpacking `.arc` files. This does not currently repack files. However,
|
A utility for unpacking `.arc` files. This does not currently repack files. However,
|
||||||
the format is so trivial that adding such a feature would be fairly easy. Run it
|
the format is so trivial that adding such a feature would be fairly easy. Run it
|
||||||
like `./arcutils --help` to see help output and determine how to use this.
|
like `./arcutils --help` to see help output and determine how to use this.
|
||||||
|
|
||||||
bemanishark
|
## bemanishark
|
||||||
===========
|
|
||||||
A wire sniffer that can decode eAmuse packets and print them. Run it on a computer
|
A wire sniffer that can decode eAmuse packets and print them. Run it on a computer
|
||||||
that can sniff traffic between an eAmusement server and a supported game and it will
|
that can sniff traffic between an eAmusement server and a supported game and it will
|
||||||
spit out the requests and responses XML-formatted identically to the legacy easerver
|
spit out the requests and responses XML-formatted identically to the legacy easerver
|
||||||
@ -66,23 +66,29 @@ TCP stream.
|
|||||||
This utility might be better if rewritten to be a plugin for Wireshark instead of
|
This utility might be better if rewritten to be a plugin for Wireshark instead of
|
||||||
a standalone sniffing utility, but I don't have the time.
|
a standalone sniffing utility, but I don't have the time.
|
||||||
|
|
||||||
binutils
|
## binutils
|
||||||
========
|
|
||||||
A utility for unpacking raw binxml files (files that use the same encoding scheme
|
A utility for unpacking raw binxml files (files that use the same encoding scheme
|
||||||
as the binary network protocol) to their XML representation. This is useful for
|
as the binary network protocol) to their XML representation. This is useful for
|
||||||
examining raw binary blobs or digging into unknown file formats that contain binxml.
|
examining raw binary blobs or digging into unknown file formats that contain binxml.
|
||||||
Run it like `./binutils --help` to see help and learn how to use this.
|
Run it like `./binutils --help` to see help and learn how to use this.
|
||||||
|
|
||||||
cardconvert
|
## bootstrap
|
||||||
===========
|
|
||||||
|
A utility for quickly bootstrapping a local setup's music database from an already
|
||||||
|
running BEMAPI-compatible server. This is more documented in the below "Database
|
||||||
|
Initialization" section.
|
||||||
|
|
||||||
|
## cardconvert
|
||||||
|
|
||||||
A command-line utility for converting between card numbers written on the back of a
|
A command-line utility for converting between card numbers written on the back of a
|
||||||
card and the card ID stored in the RFID of the card. Run it like `./cardconvert --help`
|
card and the card ID stored in the RFID of the card. Run it like `./cardconvert --help`
|
||||||
to see how to use this. This will sanitize input, so you can feed it card numbers
|
to see how to use this. This will sanitize input, so you can feed it card numbers
|
||||||
with or without spaces, and you can mix up 1 and I as well as 0 and O, and it will
|
with or without spaces, and you can mix up 1 and I as well as 0 and O, and it will
|
||||||
properly handle decoding. This supports both new and old style cards.
|
properly handle decoding. This supports both new and old style cards.
|
||||||
|
|
||||||
dbutils
|
## dbutils
|
||||||
=======
|
|
||||||
A command-line utility for working with the DB used by "api", "services" and "frontend".
|
A command-line utility for working with the DB used by "api", "services" and "frontend".
|
||||||
This utility includes options for creating tables in a newly-created DB, granting and
|
This utility includes options for creating tables in a newly-created DB, granting and
|
||||||
revoking admin rights to the frontend, generating migration scripts for live DBs, and
|
revoking admin rights to the frontend, generating migration scripts for live DBs, and
|
||||||
@ -95,8 +101,8 @@ bring your production DB up to sync with the code you are deploying. Run it like
|
|||||||
`./dbutils --help` to see all options. The config file that this works on is the same
|
`./dbutils --help` to see all options. The config file that this works on is the same
|
||||||
that is given to "api", "services" and "frontend".
|
that is given to "api", "services" and "frontend".
|
||||||
|
|
||||||
frontend
|
## frontend
|
||||||
========
|
|
||||||
Development version of a frontend server allowing for account and server administration
|
Development version of a frontend server allowing for account and server administration
|
||||||
as well as score viewing and profile editing. Run it like `./frontend --help` to see
|
as well as score viewing and profile editing. Run it like `./frontend --help` to see
|
||||||
help output and determine how to use this. Much like "services" and "api", this should
|
help output and determine how to use this. Much like "services" and "api", this should
|
||||||
@ -108,22 +114,22 @@ Do not use this utility to serve production traffic. Instead, see
|
|||||||
`bemani/wsgi/frontend.wsgi` for a ready-to-go WSGI file that can be used with uWSGI
|
`bemani/wsgi/frontend.wsgi` for a ready-to-go WSGI file that can be used with uWSGI
|
||||||
and nginx.
|
and nginx.
|
||||||
|
|
||||||
ifsutils
|
## ifsutils
|
||||||
========
|
|
||||||
A mediocre utility that can extract `.ifs` files. This has a lot of baked in
|
A mediocre utility that can extract `.ifs` files. This has a lot of baked in
|
||||||
assumptions and is not nearly as good as other open-source utilities for extracting
|
assumptions and is not nearly as good as other open-source utilities for extracting
|
||||||
files. It also cannot repack files. This is included for posterity, and because some
|
files. It also cannot repack files. This is included for posterity, and because some
|
||||||
bootstrapping code requires it in order to fully start a production server.
|
bootstrapping code requires it in order to fully start a production server.
|
||||||
Run it like `./ifsutils --help` to see help output and learn how to use it.
|
Run it like `./ifsutils --help` to see help output and learn how to use it.
|
||||||
|
|
||||||
iidxutils
|
## iidxutils
|
||||||
=========
|
|
||||||
A utility for patching IIDX music database files. Note that this currently can only
|
A utility for patching IIDX music database files. Note that this currently can only
|
||||||
apply a "hide leggendarias from normal folders" patch, although its probable that it
|
apply a "hide leggendarias from normal folders" patch, although its probable that it
|
||||||
can be extended for other uses.
|
can be extended for other uses.
|
||||||
|
|
||||||
proxy
|
## proxy
|
||||||
=====
|
|
||||||
A utility to MITM an eAmuse session. Point a game at the port this listens on, and
|
A utility to MITM an eAmuse session. Point a game at the port this listens on, and
|
||||||
point it at another network to see the packets flowing between the two. Takes care
|
point it at another network to see the packets flowing between the two. Takes care
|
||||||
of rewriting the facility message to MITM all messages. Has the ability to rewrite
|
of rewriting the facility message to MITM all messages. Has the ability to rewrite
|
||||||
@ -144,8 +150,8 @@ of this utility located at `bemani/wsgi/proxy.wsgi` along with uWSGI and nginx.
|
|||||||
|
|
||||||
Run it like `./proxy --help` to see how to use this utility.
|
Run it like `./proxy --help` to see how to use this utility.
|
||||||
|
|
||||||
psmap
|
## psmap
|
||||||
=====
|
|
||||||
A utility to take an offset from a DLL file and produce python code that would generate
|
A utility to take an offset from a DLL file and produce python code that would generate
|
||||||
a suitable response that said DLL will properly parse. Essentially, if you are
|
a suitable response that said DLL will properly parse. Essentially, if you are
|
||||||
reversing a new game and they use the `psmap` utility to decode all or part of a
|
reversing a new game and they use the `psmap` utility to decode all or part of a
|
||||||
@ -155,8 +161,8 @@ Note that this doesn't currently work on 64bit games, but it should be trivial t
|
|||||||
figure out the differences in the 64-bit psmap implementation. Run it like
|
figure out the differences in the 64-bit psmap implementation. Run it like
|
||||||
`./psmap --help` to see how to use this utility.
|
`./psmap --help` to see how to use this utility.
|
||||||
|
|
||||||
read
|
## read
|
||||||
====
|
|
||||||
A utility to read music DB information out of game files and populate a database.
|
A utility to read music DB information out of game files and populate a database.
|
||||||
This should be given the same config file as "api", "services" or "frontend" and
|
This should be given the same config file as "api", "services" or "frontend" and
|
||||||
assumes that "dbutils" has already been used to instantiate a valid MySQL DB. It
|
assumes that "dbutils" has already been used to instantiate a valid MySQL DB. It
|
||||||
@ -164,16 +170,16 @@ also assumes you have the correct game files to read out of. Run it like
|
|||||||
`./read --help` to see how to use it. This utility's uses are extensively documented
|
`./read --help` to see how to use it. This utility's uses are extensively documented
|
||||||
below in the "Installation" section.
|
below in the "Installation" section.
|
||||||
|
|
||||||
replay
|
## replay
|
||||||
======
|
|
||||||
A utility to take a packet as logged by proxy, services, trafficgen or bemanishark,
|
A utility to take a packet as logged by proxy, services, trafficgen or bemanishark,
|
||||||
and replay that packet against a particular server. Useful for quickly grabbing
|
and replay that packet against a particular server. Useful for quickly grabbing
|
||||||
packets that caused a crash and debugging the crash (and verifying the fix). It also
|
packets that caused a crash and debugging the crash (and verifying the fix). It also
|
||||||
lets you replay that packet against your production instance once you fixed the issue
|
lets you replay that packet against your production instance once you fixed the issue
|
||||||
in case that packet was a score or profile update that you care about.
|
in case that packet was a score or profile update that you care about.
|
||||||
|
|
||||||
responsegen
|
## responsegen
|
||||||
===========
|
|
||||||
A utility to take a packet as logged by proxy, services, trafficgen or bemanishark,
|
A utility to take a packet as logged by proxy, services, trafficgen or bemanishark,
|
||||||
and generate python code that would have generated that exact packet. Useful for
|
and generate python code that would have generated that exact packet. Useful for
|
||||||
quickly grabbing packets sniffed from another network and prototyping new game support.
|
quickly grabbing packets sniffed from another network and prototyping new game support.
|
||||||
@ -181,8 +187,8 @@ Think of this as a combination of "replay" and "psmap". This is also extremely u
|
|||||||
when building new integration test clients. Run it like `./responsegen --help` to
|
when building new integration test clients. Run it like `./responsegen --help` to
|
||||||
see all information and usage.
|
see all information and usage.
|
||||||
|
|
||||||
scheduler
|
## scheduler
|
||||||
=========
|
|
||||||
A command-line utility for kicking off scheduled work that must be performed against a
|
A command-line utility for kicking off scheduled work that must be performed against a
|
||||||
DB. This includes picking new dailies/weeklies, new courses, etc... depending on the
|
DB. This includes picking new dailies/weeklies, new courses, etc... depending on the
|
||||||
game and any requirements that the server perform some actual calculation based on
|
game and any requirements that the server perform some actual calculation based on
|
||||||
@ -192,8 +198,8 @@ should be seen as a utility-specific cron handler. You can safely run this repea
|
|||||||
and as frequently as desired. Run like `./scheduler --help` to see how to ues this.
|
and as frequently as desired. Run like `./scheduler --help` to see how to ues this.
|
||||||
This should be given the same config file as "api", "frontend" and "services".
|
This should be given the same config file as "api", "frontend" and "services".
|
||||||
|
|
||||||
services
|
## services
|
||||||
========
|
|
||||||
Development version of an eAmusement protocol server using flask and the protocol
|
Development version of an eAmusement protocol server using flask and the protocol
|
||||||
libraries also used in "bemanishark" and "trafficgen". Currently it lets most modern
|
libraries also used in "bemanishark" and "trafficgen". Currently it lets most modern
|
||||||
BEMANI games boot and supports full profile and events for Beatmania IIDX 20-24,
|
BEMANI games boot and supports full profile and events for Beatmania IIDX 20-24,
|
||||||
@ -206,14 +212,14 @@ Do not use this utility to serve production traffic. Instead, see
|
|||||||
`bemani/wsgi/services.wsgi` for a ready-to-go WSGI file that can be used with uWSGI
|
`bemani/wsgi/services.wsgi` for a ready-to-go WSGI file that can be used with uWSGI
|
||||||
and nginx.
|
and nginx.
|
||||||
|
|
||||||
shell
|
## shell
|
||||||
=====
|
|
||||||
A convenience wrapper to invoke a Python 3 shell that has paths set up to import the
|
A convenience wrapper to invoke a Python 3 shell that has paths set up to import the
|
||||||
modules in this repository. If you want to tinker or write a quick one-off, this is
|
modules in this repository. If you want to tinker or write a quick one-off, this is
|
||||||
probably the easiest way to do so.
|
probably the easiest way to do so.
|
||||||
|
|
||||||
struct
|
## struct
|
||||||
======
|
|
||||||
A convenience utility for helping reverse-engineer structures out of game DLLs. You
|
A convenience utility for helping reverse-engineer structures out of game DLLs. You
|
||||||
can give this a physical DLL offset or a virtual memory address for the start and
|
can give this a physical DLL offset or a virtual memory address for the start and
|
||||||
end of the data as well as a python struct format (documentation at
|
end of the data as well as a python struct format (documentation at
|
||||||
@ -221,8 +227,8 @@ https://docs.python.org/3.6/library/struct.html) and this will print the decoded
|
|||||||
data to the screen as a series of tuples. Run it like `./struct --help` to see how
|
data to the screen as a series of tuples. Run it like `./struct --help` to see how
|
||||||
to use this.
|
to use this.
|
||||||
|
|
||||||
trafficgen
|
## trafficgen
|
||||||
==========
|
|
||||||
A utility for simulating traffic to an eAmusement service. Given a particular game,
|
A utility for simulating traffic to an eAmusement service. Given a particular game,
|
||||||
this will run through and attempt to verify simple operation of that service. No
|
this will run through and attempt to verify simple operation of that service. No
|
||||||
guarantees are made on the accuracy of the emulation though I've strived to be
|
guarantees are made on the accuracy of the emulation though I've strived to be
|
||||||
@ -234,21 +240,21 @@ Dance Revolution X2, X3, 2013, 2014 and Ace, The\*BishiBashi, MÚSECA 1 and MÚS
|
|||||||
Reflec Beat, Reflec Beat Limelight, Reflec Beat Colette, groovin'!! Upper, Volzza 1 and
|
Reflec Beat, Reflec Beat Limelight, Reflec Beat Colette, groovin'!! Upper, Volzza 1 and
|
||||||
Volzza 2 and can verify card events and score events, as well as PASELI transactions.
|
Volzza 2 and can verify card events and score events, as well as PASELI transactions.
|
||||||
|
|
||||||
verifylibs
|
## verifylibs
|
||||||
==========
|
|
||||||
Unit test frontend utility. This will invoke nosetests on the embarrasingly small
|
Unit test frontend utility. This will invoke nosetests on the embarrasingly small
|
||||||
collection of unit tests for this repository. If you are making modifications, it can
|
collection of unit tests for this repository. If you are making modifications, it can
|
||||||
be useful to write a test first (placed in the `bemani/tests/` directory) and code
|
be useful to write a test first (placed in the `bemani/tests/` directory) and code
|
||||||
from there. It is also useful when optimizing or profiling, and also to verify that
|
from there. It is also useful when optimizing or profiling, and also to verify that
|
||||||
you haven't regressed anything.
|
you haven't regressed anything.
|
||||||
|
|
||||||
verifylint
|
## verifylint
|
||||||
==========
|
|
||||||
Lint invocation utility. This simply invokes flake8 with various options so that you
|
Lint invocation utility. This simply invokes flake8 with various options so that you
|
||||||
can see you haven't introduced any lint errors.
|
can see you haven't introduced any lint errors.
|
||||||
|
|
||||||
verifytraffic
|
## verifytraffic
|
||||||
=============
|
|
||||||
A utility which attempts to call "trafficgen" for each supported game on the network.
|
A utility which attempts to call "trafficgen" for each supported game on the network.
|
||||||
Think of this as a full integration test suite, as it will sweep through each supported
|
Think of this as a full integration test suite, as it will sweep through each supported
|
||||||
game and verify that network services are actually working. This assumes that you are
|
game and verify that network services are actually working. This assumes that you are
|
||||||
@ -257,17 +263,16 @@ submit bogus cards, scores, names and the like and mess up your network. This ta
|
|||||||
a config file which sets up how the client should behave. See `config/trafficgen.yaml`
|
a config file which sets up how the client should behave. See `config/trafficgen.yaml`
|
||||||
for a sample file that can be used.
|
for a sample file that can be used.
|
||||||
|
|
||||||
verifytyping
|
## verifytyping
|
||||||
============
|
|
||||||
Typing invocation utility. Since this repository is fully typed, this verifies that you
|
Typing invocation utility. Since this repository is fully typed, this verifies that you
|
||||||
haven't introduced any type errors and often catches bugs far faster than attemping to
|
haven't introduced any type errors and often catches bugs far faster than attemping to
|
||||||
play a round only to see that you misused a class or misspelled a variable.
|
play a round only to see that you misused a class or misspelled a variable.
|
||||||
|
|
||||||
Installation
|
# Installation
|
||||||
------------
|
|
||||||
|
## Dependency Setup
|
||||||
|
|
||||||
Dependency Setup
|
|
||||||
================
|
|
||||||
The code contained here assumes Python 3.6 as the base. If you don't have or don't
|
The code contained here assumes Python 3.6 as the base. If you don't have or don't
|
||||||
want to install Python 3.6 as your system python, it is recommended to use
|
want to install Python 3.6 as your system python, it is recommended to use
|
||||||
virtualenv to create a virtual environment. The rest of the installation will assume
|
virtualenv to create a virtual environment. The rest of the installation will assume
|
||||||
@ -319,8 +324,8 @@ This is due to the way `/tmp` on Linux restricts file access to the creator only
|
|||||||
if you share your cache with multiple utilities running under different users, it will
|
if you share your cache with multiple utilities running under different users, it will
|
||||||
fail to reuse the cache and drastically slow down the frontend.
|
fail to reuse the cache and drastically slow down the frontend.
|
||||||
|
|
||||||
Database Initialization
|
## Database Initialization
|
||||||
=======================
|
|
||||||
At this point, games will boot when pointed at the network, but you won't be able
|
At this point, games will boot when pointed at the network, but you won't be able
|
||||||
to save scores. This is due to the missing song/chart -> score mapping. You will find
|
to save scores. This is due to the missing song/chart -> score mapping. You will find
|
||||||
default configuration files for the traffic generator and the services backend in
|
default configuration files for the traffic generator and the services backend in
|
||||||
@ -355,16 +360,16 @@ If you do not have a BEMAPI-compatible server, you can initialize the server fro
|
|||||||
game files of the games you wish to run. See the following sections for how exactly to
|
game files of the games you wish to run. See the following sections for how exactly to
|
||||||
do that.
|
do that.
|
||||||
|
|
||||||
Pop'n Music
|
### Pop'n Music
|
||||||
~~~~~~~~~~~
|
|
||||||
For Pop'n Music, get the game DLL from the version of the game you want to import and
|
For Pop'n Music, get the game DLL from the version of the game you want to import and
|
||||||
run a command like so. This network supports versions 19-24 so you will want to run this
|
run a command like so. This network supports versions 19-24 so you will want to run this
|
||||||
command once for every version, giving the correct DLL file:
|
command once for every version, giving the correct DLL file:
|
||||||
|
|
||||||
./read --config config/server.yaml --series pnm --version 22 --bin popn22.dll
|
./read --config config/server.yaml --series pnm --version 22 --bin popn22.dll
|
||||||
|
|
||||||
Jubeat
|
### Jubeat
|
||||||
~~~~~~
|
|
||||||
For Jubeat, get the music XML out of the data directory of the mix you are importing,
|
For Jubeat, get the music XML out of the data directory of the mix you are importing,
|
||||||
and then use "read" with `--series jubeat` and `--version` corresponding to the following
|
and then use "read" with `--series jubeat` and `--version` corresponding to the following
|
||||||
table:
|
table:
|
||||||
@ -386,8 +391,8 @@ after importing all mixes:
|
|||||||
./read --config config/server.yaml --series jubeat --version all --tsv \
|
./read --config config/server.yaml --series jubeat --version all --tsv \
|
||||||
data/jubeat.tsv
|
data/jubeat.tsv
|
||||||
|
|
||||||
IIDX
|
### IIDX
|
||||||
~~~~
|
|
||||||
For IIDX, you will need the data directory of the mix you wish to support. The import
|
For IIDX, you will need the data directory of the mix you wish to support. The import
|
||||||
script automatically scrapes the music DB as well as the song charts to determine
|
script automatically scrapes the music DB as well as the song charts to determine
|
||||||
difficulty, notecounts and BPM. For a normal mix, you will want to run the command like
|
difficulty, notecounts and BPM. For a normal mix, you will want to run the command like
|
||||||
@ -410,8 +415,8 @@ after importing all mixes (this fixes some inconsistencies in names):
|
|||||||
./read --config config/server.yaml --series iidx --version all --tsv \
|
./read --config config/server.yaml --series iidx --version all --tsv \
|
||||||
data/iidx.tsv
|
data/iidx.tsv
|
||||||
|
|
||||||
DDR
|
### DDR
|
||||||
~~~
|
|
||||||
For DDR, you will need the game DLL and `musicdb.xml` from the game you wish to import,
|
For DDR, you will need the game DLL and `musicdb.xml` from the game you wish to import,
|
||||||
and then run a command similar to the following. You will want to use the version
|
and then run a command similar to the following. You will want to use the version
|
||||||
corresponding to version in the following table:
|
corresponding to version in the following table:
|
||||||
@ -431,8 +436,8 @@ For DDR Ace, there is no `musicdb.xml` or game DLL needed. Instead, you will nee
|
|||||||
./read --config config/server.yaml --series ddr --version 16 \
|
./read --config config/server.yaml --series ddr --version 16 \
|
||||||
--bin data/arc/startup.arc
|
--bin data/arc/startup.arc
|
||||||
|
|
||||||
SDVX
|
### SDVX
|
||||||
~~~~
|
|
||||||
For SDVX, you will need the game DLL and `music_db.xml` from the game you wish to import,
|
For SDVX, you will need the game DLL and `music_db.xml` from the game you wish to import,
|
||||||
and then run the following command, modifying the version parameter as required.
|
and then run the following command, modifying the version parameter as required.
|
||||||
Note that for SDVX 1, you want the `music_db.xml` file in `data/others/music_db/` directory,
|
Note that for SDVX 1, you want the `music_db.xml` file in `data/others/music_db/` directory,
|
||||||
@ -460,24 +465,24 @@ work properly. To do so, run the following command.
|
|||||||
./read --config config/server.yaml --series sdvx --version 4 \
|
./read --config config/server.yaml --series sdvx --version 4 \
|
||||||
--xml data/others/appeal_card.xml
|
--xml data/others/appeal_card.xml
|
||||||
|
|
||||||
MÚSECA
|
### MÚSECA
|
||||||
~~~~~~
|
|
||||||
For MÚSECA, you will need the `music-info.xml` file from the game you wish to import.
|
For MÚSECA, you will need the `music-info.xml` file from the game you wish to import.
|
||||||
Then, run the following command, modifying the version parameter as required.
|
Then, run the following command, modifying the version parameter as required.
|
||||||
|
|
||||||
./read --config config/server.yaml --series museca --version 1 \
|
./read --config config/server.yaml --series museca --version 1 \
|
||||||
--xml data/museca/xml/music-info.xml
|
--xml data/museca/xml/music-info.xml
|
||||||
|
|
||||||
Reflec Beat
|
### Reflec Beat
|
||||||
~~~~~~~~~~~
|
|
||||||
For Reflec Beat, get the game DLL from the version of the game you want to import and
|
For Reflec Beat, get the game DLL from the version of the game you want to import and
|
||||||
run a command like so. This network supports Reflec Beat up through Volzza 2, so you
|
run a command like so. This network supports Reflec Beat up through Volzza 2, so you
|
||||||
will want to run this with versions 1-6 to completely initialize:
|
will want to run this with versions 1-6 to completely initialize:
|
||||||
|
|
||||||
./read --config config/server.yaml --series reflec --version 1 --bin reflecbeat.dll
|
./read --config config/server.yaml --series reflec --version 1 --bin reflecbeat.dll
|
||||||
|
|
||||||
Running Locally
|
## Running Locally
|
||||||
===============
|
|
||||||
Once you've set all of this up, you can start the network in debug mode using a command
|
Once you've set all of this up, you can start the network in debug mode using a command
|
||||||
similar to:
|
similar to:
|
||||||
|
|
||||||
@ -537,8 +542,8 @@ script to promote yourself to admin, similar to this command:
|
|||||||
|
|
||||||
./dbutils --config config/server.yaml add-admin --username <your-name-here>
|
./dbutils --config config/server.yaml add-admin --username <your-name-here>
|
||||||
|
|
||||||
Production Setup
|
## Production Setup
|
||||||
================
|
|
||||||
As alluded to several times in this README, the recommended way to run a production
|
As alluded to several times in this README, the recommended way to run a production
|
||||||
instance of this code is to set up uWSGI fronted by nginx. You should SSL-encrypt
|
instance of this code is to set up uWSGI fronted by nginx. You should SSL-encrypt
|
||||||
the frontend and the API services, and its recommended to use LetsEncrypt for a
|
the frontend and the API services, and its recommended to use LetsEncrypt for a
|
||||||
@ -555,8 +560,8 @@ set up a nginx directory to serve the static resources directly.
|
|||||||
For example configurations, an example install script, and an example script to back
|
For example configurations, an example install script, and an example script to back
|
||||||
up your MySQL instance, see the `examples/` directory.
|
up your MySQL instance, see the `examples/` directory.
|
||||||
|
|
||||||
Contributing
|
# Contributing
|
||||||
------------
|
|
||||||
Contributions are welcome! Before submitting a pull request, ensure that your code
|
Contributions are welcome! Before submitting a pull request, ensure that your code
|
||||||
is type-hint clean by running `./verifytyping` and ensure that it hasn't broken basic
|
is type-hint clean by running `./verifytyping` and ensure that it hasn't broken basic
|
||||||
libraries with `./verifylibs`. Make sure that it is also lint-clean with `./verifylint`.
|
libraries with `./verifylibs`. Make sure that it is also lint-clean with `./verifylint`.
|
||||||
|
5
TODO.md
5
TODO.md
@ -8,3 +8,8 @@ Things that I have not gotten around to doing.
|
|||||||
- Make the frontend work better on mobile. It works well enough, but it could be a much better experience.
|
- Make the frontend work better on mobile. It works well enough, but it could be a much better experience.
|
||||||
- Support for DanEvo. I meant to do this but my DanEvo ended up in storage before I could tackle it, so the only thing that exists at the moment is a rudimentary music DB parser.
|
- Support for DanEvo. I meant to do this but my DanEvo ended up in storage before I could tackle it, so the only thing that exists at the moment is a rudimentary music DB parser.
|
||||||
- Figure out phase/unlock/etc bits for some older IIDX and Pop'n Music versions and hook them up to the Arcade panel to allow switching events.
|
- Figure out phase/unlock/etc bits for some older IIDX and Pop'n Music versions and hook them up to the Arcade panel to allow switching events.
|
||||||
|
|
||||||
|
General maintenance that I have not yet performed.
|
||||||
|
|
||||||
|
- Unpin flake8 and address new lint errors from newer version of flake8.
|
||||||
|
- Upgrade legacy uses of .format() to use f-strings instead.
|
||||||
|
Loading…
Reference in New Issue
Block a user