1 Chunithm
Hay1tsme edited this page 2023-10-20 16:11:02 +00:00

Versions

SDBT

Version ID Version Name
0 CHUNITHM
1 CHUNITHM PLUS
2 CHUNITHM AIR
3 CHUNITHM AIR PLUS
4 CHUNITHM STAR
5 CHUNITHM STAR PLUS
6 CHUNITHM AMAZON
7 CHUNITHM AMAZON PLUS
8 CHUNITHM CRYSTAL
9 CHUNITHM CRYSTAL PLUS
10 CHUNITHM PARADISE

SDHD

Version ID Version Name
11 CHUNITHM NEW!!
12 CHUNITHM NEW PLUS!!
13 CHUNITHM SUN

Importer

In order to use the importer locate your game installation folder and execute:

python read.py --game SDBT --version <version ID> --binfolder /path/to/game/folder --optfolder /path/to/game/option/folder

The importer for Chunithm will import: Events, Music, Charge Items and Avatar Accesories.

Config

Config file is located in config/chuni.yaml.

Option Info
news_msg If this is set, the news at the top of the main screen will be displayed (up to Chunithm Paradise Lost)
name If this is set, all players that are not on a team will use this one by default.
rank_scale Scales the in-game ranking based on the number of teams within the database
use_login_bonus This is used to enable the login bonuses
crypto This option is used to enable the TLS Encryption

If you would like to use network encryption, the following will be required underneath but key, iv and hash are required:

crypto:
  encrypted_only: False
  keys:
    13: ["0000000000000000000000000000000000000000000000000000000000000000", "00000000000000000000000000000000", "0000000000000000"]

Database upgrade

Always make sure your database (tables) are up-to-date, to do so go to the core/data/schema/versions folder and see which version is the latest, f.e. SDBT_4_upgrade.sql. In order to upgrade to version 4 in this case you need to perform all previous updates as well:

python dbutils.py --game SDBT upgrade

Online Battle

Only matchmaking (with your imaginary friends) is supported! Online Battle does not (yet?) work!

The first person to start the Online Battle (now called host) will create a "matching room" with a given roomId, after that max 3 other people can join the created room. Non used slots during the matchmaking will be filled with CPUs after the timer runs out. As soon as a new member will join the room the timer will jump back to 60 secs again. Sending those 4 messages to all other users is also working properly. In order to use the Online Battle every user needs the same ICF, same rom version and same data version! If a room is full a new room will be created if another user starts an Online Battle. After a failed Online Battle the room will be deleted. The host is used for the timer countdown, so if the connection failes to the host the timer will stop and could create a "frozen" state.

Information/Problems:

  • Online Battle uses UDP hole punching and opens port 50201?
  • reflectorUri seems related to that?
  • Timer countdown should be handled globally and not by one user
  • Game can freeze or can crash if someone (especially the host) leaves the matchmaking

Rivals

You can configure up to 4 rivals in Chunithm on a per-user basis. There is no UI to do this currently, so in the database, you can do this:

INSERT INTO aime.chuni_item_favorite (user, version, favId, favKind) VALUES (<user1>, <version>, <user2>, 2);
INSERT INTO aime.chuni_item_favorite (user, version, favId, favKind) VALUES (<user2>, <version>, <user1>, 2);

Note that the version must match, otherwise song lookup may not work.

Teams

You can also configure teams for users to be on. There is no UI to do this currently, so in the database, you can do this:

INSERT INTO aime.chuni_profile_team (teamName) VALUES (<teamName>);

Team names can be regular ASCII, and they will be displayed ingame.

On smaller installations, you may also wish to enable scaled team rankings. By default, Chunithm determines team ranking within the first 100 teams. This can be configured in the YAML:

team:
  rank_scale: True # Scales the in-game ranking based on the number of teams within the database, rather than the default scale of ~100 that the game normally uses.

Favorite songs

You can set the songs that will be in a user's Favorite Songs category using the following SQL entries:

INSERT INTO aime.chuni_item_favorite (user, version, favId, favKind) VALUES (<user>, <version>, <songId>, 1);

The songId is based on the actual ID within your version of Chunithm.