Skip to content

Overview ​

The Chunithm arcade series is a rhythm game developed by SEGA, featuring an innovative control scheme where players use a wide, touch-sensitive panel located at waist height, combined with motion sensors. Players interact with the game by tapping, sliding across, and lifting their hands above the panel in time with music notes displayed on the screen, simulating the playing of a piano with added gestures. The game includes a wide variety of music tracks, from J-Pop and anime themes to classical and game music, appealing to a broad audience with its immersive gameplay and dynamic difficulty levels.

Release History

GameRelease Date
CHUNITHMJuly 16, 2015 (JP)
CHUNITHM PLUSFebruary 4, 2016 (JP)
AIRAugust 25, 2016 (JP)
AIR PLUSFebruary 9, 2017 (JP)
STARAugust 24, 2017 (JP)
STAR PLUSMarch 8, 2018 (JP)
SUPERSTARNovember 26, 2020 (WW)
SUPERSTAR PLUSSeptember 2, 2021 (WW)
AMAZONOctober 25, 2018 (JP)
AMAZON PLUSApril 11, 2019 (JP)
CRYSTALOctober 24, 2019 (JP)
CRYSTAL PLUSJuly 16, 2020 (JP)
PARADISEJanuary 21, 2021 (JP)
PARADISE LOSTMay 13, 2021 (JP)
NEWNovember 4, 2021 (JP), March 3, 2022 (WW), September 8, 2022 (CHN)
NEW PLUSApril 14, 2022 (JP), August 18, 2022 (WW)
SUNOctober 13, 2022 (JP), March 2, 2023 (WW)
SUN PLUSMay 11, 2023 (JP)

Status ​

  • Game Server: YES (ARTEMiS)
  • Score Saving: YES
  • Physical Card Reader Support: YES

Downloads ​

Full packs: https://pixeldrain.com/l/cuFRSNJV

Contains:

alt text

Also from: https://pixeldrain.com/l/y19kkjf2

alt text

Game Server ​

TIP

As of June 1, 2024, I decided to switch to ARTEMiS game server instead of Aqua since it is updated regularly, and support physical Aime card reader.

WARNING

All Chunithm games require a working ALL.NET game server implementation to work, e.g. ARTEMiS.

ARTEMiS ​

Refer to the ARTEMiS Setup in Project Diva here to setup the server. The only thing different is the segatools.ini configuration but that is client specific configuration, not server. Make sure you follow through the whole steps in that section until you can start the server and see its console window.

Game Specific Setup ​

Run the following using python venv to import the tracks into the server database so the shop can function well.

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

Refer to the following for the version ID

SDBT

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

SDHD/SDBT

Version IDVersion Name
11CHUNITHM NEW!!
12CHUNITHM NEW PLUS!!
13CHUNITHM SUN
14CHUNITHM SUN PLUS

Example command that I used for CHUNITHM AMAZON:

python read.py --game SDBT --version 6 --binfolder "r:\ROM-Staging\chunithm-series\Chunithm Amazon (SDBT 1.30.00)\App\bin" --optfolder "r:\ROM-Staging\chunithm-series\Chunithm Amazon (SDBT 1.30.00)\Option"

Aqua ​

WARNING

The following is kept for reference purpose only. Recommended to use ARTEMiS instead.

There seems to be several fork repo for this server, such as:

Download the Aqua release here https://github.com/Lekuruu/aqua/releases/tag/0.0.16, which is from https://github.com/Lekuruu/aqua instead of from the original author from https://github.com/Soyandroid/aqua. This is because Lekuruu fixes the build flow that doesn’t work on the Soyandroid/aqua repo. I tried to mvn compile but failed.

alt text

Instead of the repo above, simply download Aqua release 0.0.46 from https://pixeldrain.com/u/bCEhYGQS

Extract it and modify [application.properties](http://application.properties) and uncomment/changeallnet.serverhost= to your computer IP address. DO NOT USE loopback interface such as [localhos](http://localhost)t or 127.0.0.1.

alt text

Supported Games ​

  • CHUNITHM SUN (and below)
  • CHUNITHM Paradise Lost (and below)
  • Maimai DX Festival (and below)
  • Card Maker (1.34)
  • Project DIVA Arcade Future Tone
  • O.N.G.E.K.I. bright memory (and below)

Install Java (Prerequisite) ​

The server require Java, so download JDK 20 if not already.

After that, add a new System variableJAVA_HOME to System Environment

alt text

Then edit Path and create a new entry with value %JAVA_HOME%\bin

alt text

Game Loader: Segatools ​

Updated: Download segatools from https://gitea.tendokyu.moe/Dniel97/segatools/releases

Download segatools-v005 from emuline here https://www.emuline.org/applications/core/interface/file/attachment.php?id=15653. Original thread: https://www.emuline.org/topic/1313-idmacx-jrconfig-jvsemu-spicetools-bemanitools-segatools-etc/

Extract the chuni.zip inside that archive, and paste them to Chunithm game folder\App\bin folder

alt text

Contents of your App\bin after copying all the extracted files from chuni.zip.

alt text

Open segatools.ini with your favorite text editor as we will configure some settings here.

Folder Path Remap ​

Create three folders in your app\bin folder, i.e. amfs, option, and appdata.

; -----------------------------------------------------------------------------
; Path settings
; -----------------------------------------------------------------------------

[vfs]
; Insert the path to the game AMFS directory here (contains ICF1 and ICF2)
amfs=amfs
; Insert the path to the game Option directory here (contains Axxx directories)
option=option
; Create an empty directory somewhere and insert the path here.
; This directory may be shared between multiple SEGA games.
; NOTE: This has nothing to do with Windows %APPDATA%.
appdata=appdata

Networking ​

Set the hostname for the server, don't use localhost or 127.0.0.1, use your PC LAN IP instead.

[dns]
; Insert the hostname or IP address of the server you wish to use here.
; Note that 127.0.0.1, localhost etc are specifically rejected.
default=192.168.1.29

Also set the subnet mask in [keychip] to your PC LAN subnet.

[keychip]
; The /24 LAN subnet that the emulated keychip will tell the game to expect.
; If you disable netenv then you must set this to your LAN's IP subnet, and
; that subnet must start with 192.168.
subnet=192.168.1.0

Controls ​

Following is the default keys mapped to different system function.

ini
[io3]
; Test button virtual-key code. Default is the F1 key.
test=0x70 ; F1
; Service button virtual-key code. Default is the F2 key.
service=0x71 ; F2
; Keyboard button to increment coin counter. Default is the F3 key.
; coin=0x72 ; F3
; Set to 0 for enable separate ir control. Deafult is space key.
ir=0x20 ; spacebar

TIP

ir is the Air gesture where you swing your hand on the air.

  • F1 : Service Menu
  • F2: Select
  • F3: Insert coins
  • Enter: Insert Aime card (Only if you enable Aime card emulation support)
    [aime]
    ; Enable Aime card reader assembly emulation. Disable to use a real SEGA Aime
    ; reader.
    enable=1

Press Enter at the title screen to enter card. Use the default keys SDFGHJKL to interact with the input.

By default, segatools map each 32 cells to SSSSDDDDFFFFGGGGHHHHJJJJKKKKLLLL. In my case, I map it to the 28-keys Nostroller keyboard, so there are some keys that are repeating.

Note: cell32 is the leftmost key in the touch keys, so start from reverse.

[slider]
...
; Key bindings for each of the 32 touch cells. The default key map, depicted
; in left-to-right order, is as follows:
;
;                   SSSSDDDDFFFFGGGGHHHHJJJJKKKKLLLL
;
; Touch cells are numbered FROM RIGHT TO LEFT! starting from 1. This is in
; order to match the numbering used in the operator menu and service manual.

cell1=0x30 ; 0
cell2=0x30 ; 0
cell3=0x39 ; 9
cell4=0x5A ; Z
cell5=0x59 ; Y
cell6=0x58 ; X
cell7=0x57 ; W
cell8=0x56 ; V
cell9=0x55 ; U
cell10=0x54 ; T
cell11=0x53 ; S
cell12=0x52 ; R
cell13=0x51 ; Q
cell14=0x50 ; P
cell15=0x4F ; O
cell16=0x4F ; O
cell17=0x4E ; N
cell18=0x4E ; N
cell19=0x4D ; M
cell20=0x4C ; L
cell21=0x4B ; K
cell22=0x4A ; J
cell23=0x49 ; I
cell24=0x48 ; H
cell25=0x47 ; G
cell26=0x46 ; F
cell27=0x45 ; E
cell28=0x44 ; D
cell29=0x43 ; C
cell30=0x42 ; B
cell31=0x41 ; A
cell32=0x41 ; A

Example segatools.ini ​

Following is the complete segatools.ini that I am using.

; -----------------------------------------------------------------------------
; Path settings
; -----------------------------------------------------------------------------

[vfs]
; Insert the path to the game AMFS directory here (contains ICF1 and ICF2)
amfs=amfs
; Insert the path to the game Option directory here (contains Axxx directories)
option=option
; Create an empty directory somewhere and insert the path here.
; This directory may be shared between multiple SEGA games.
; NOTE: This has nothing to do with Windows %APPDATA%.
appdata=appdata

; -----------------------------------------------------------------------------
; Device settings
; -----------------------------------------------------------------------------

[aime]
; Enable Aime card reader assembly emulation. Disable to use a real SEGA Aime
; reader.
enable=0
aimePath=DEVICE\aime.txt

; -----------------------------------------------------------------------------
; Network settings
; -----------------------------------------------------------------------------

[dns]
; Insert the hostname or IP address of the server you wish to use here.
; Note that 127.0.0.1, localhost etc are specifically rejected.
default=192.168.1.29

[netenv]
; Simulate an ideal LAN environment. This may interfere with head-to-head play.
; Chunithm is extremely picky about its LAN environment, so leaving this
; setting enabled is strongly recommended.
enable=1
; The final octet of the local host's IP address on the virtualized subnet (so,
; if the keychip subnet is `192.168.32.0` and this value is set to `11`, then the
; local host's virtualized LAN IP is `192.168.32.11`).
addrSuffix=11

; -----------------------------------------------------------------------------
; Board settings
; -----------------------------------------------------------------------------

[keychip]
; The /24 LAN subnet that the emulated keychip will tell the game to expect.
; If you disable netenv then you must set this to your LAN's IP subnet, and
; that subnet must start with 192.168.
subnet=192.168.1.0

; -----------------------------------------------------------------------------
; Misc. hooks settings
; -----------------------------------------------------------------------------

[gfx]
; Force the game to run windowed.
windowed=1
; Add a frame to the game window if running windowed.
framed=0
; Select the monitor to run the game on. (Fullscreen only, 0 =primary screen)
monitor=0

; -----------------------------------------------------------------------------
; LED settings
; -----------------------------------------------------------------------------

[led15093]
; Enable emulation of the 15093-06 controlled lights, which handle the air tower 
; RGBs and the rear LED panel (billboard) on the cabinet.
enable=1

[led]
; Output billboard LED strip data to a named pipe called "\\.\pipe\chuni_ledstrip"
cabLedOutputPipe=1
; Output billboard LED strip data to serial
cabLedOutputSerial=0

; Output slider LED data to the named pipe
controllerLedOutputPipe=1
; Output slider LED data to the serial port
controllerLedOutputSerial=1

; Serial port to send data to if using serial output. Default is COM5.
; serialPort=COM20
; Baud rate for serial data
; serialBaud=921600

; Data output a sequence of bytes, with JVS-like framing.
; Each "packet" starts with 0xE0 as a sync. To avoid E0 appearing elsewhere,
; 0xD0 is used as an escape character -- if you receive D0 in the output, ignore
; it and use the next sent byte plus one instead.
;
; After the sync is one byte for the board number that was updated, followed by
; the red, green and blue values for each LED.
;
; Board 0 has 53 LEDs:
;   [0]-[49]: snakes through left half of billboard (first column starts at top)
;   [50]-[52]: left side partition LEDs
;
; Board 1 has 63 LEDs:
;   [0]-[59]: right half of billboard (first column starts at bottom)
;   [60]-[62]: right side partition LEDs
;
; Board 2 is the slider and has 31 LEDs:
;   [0]-[31]: slider LEDs right to left BRG, alternating between keys and dividers


; -----------------------------------------------------------------------------
; Custom IO settings
; -----------------------------------------------------------------------------

[aimeio]
; To use a custom card reader IO DLL enter its path here.
; Leave empty if you want to use Segatools built-in keyboard input.
path=

[chuniio]
; To use a custom Chunithm IO DLL enter its path here.
; Leave empty if you want to use Segatools built-in keyboard input.
path=

; -----------------------------------------------------------------------------
; Input settings
; -----------------------------------------------------------------------------

; Keyboard bindings are specified as hexadecimal (prefixed with 0x) or decimal
; (not prefixed with 0x) virtual-key codes, a list of which can be found here:
;
; https://docs.microsoft.com/en-us/windows/win32/inputdev/virtual-key-codes
;
; This is, admittedly, not the most user-friendly configuration method in the
; world. An improved solution will be provided later.

[io3]
; Test button virtual-key code. Default is the F1 key.
test=0x70
; Service button virtual-key code. Default is the F2 key.
service=0x71
; Keyboard button to increment coin counter. Default is the F3 key.
; coin=0x72
coin=0x35 ; 5
; Set to 0 for enable separate ir control. Deafult is space key.
; ir=0x20
ir=0x26 ; Up Arrow

[ir]
; Uncomment and complete the following sequence of settings to configure a
; custom ir-cappable controller if you have one.
;ir6=0x53
; ... etc ...
;ir1=0x53

[slider]
; Enable slider emulation. If you have real AC slider, set this to 0.
; Slider serial port must be COM1.
;enable=1

; Key bindings for each of the 32 touch cells. The default key map, depicted
; in left-to-right order, is as follows:
;
;                   SSSSDDDDFFFFGGGGHHHHJJJJKKKKLLLL
;
; Touch cells are numbered FROM RIGHT TO LEFT! starting from 1. This is in
; order to match the numbering used in the operator menu and service manual.
;
; Uncomment and complete the following sequence of settings to configure a
; custom high-precision touch strip controller if you have one.
;cell1=0x53
;cell2=0x53
; ... etc ...
;cell31=0x53
;cell32=0x53

cell1=0x30 ; 0
cell2=0x30 ; 0
cell3=0x39 ; 9
cell4=0x5A ; Z
cell5=0x59 ; Y
cell6=0x58 ; X
cell7=0x57 ; W
cell8=0x56 ; V
cell9=0x55 ; U
cell10=0x54 ; T
cell11=0x53 ; S
cell12=0x52 ; R
cell13=0x51 ; Q
cell14=0x50 ; P
cell15=0x4F ; O
cell16=0x4F ; O
cell17=0x4E ; N
cell18=0x4E ; N
cell19=0x4D ; M
cell20=0x4C ; L
cell21=0x4B ; K
cell22=0x4A ; J
cell23=0x49 ; I
cell24=0x48 ; H
cell25=0x47 ; G
cell26=0x46 ; F
cell27=0x45 ; E
cell28=0x44 ; D
cell29=0x43 ; C
cell30=0x42 ; B
cell31=0x41 ; A
cell32=0x41 ; A

Start the Game ​

Double click start.bat to run the game.

Configure Arcade Board Settings ​

Once the game is loading and you see some text, press F1 to enter Service Menu, and we will configure some settings below:

  • Set the arcade board to Distribution Server. In a real LAN, the system expect one of the cabinet to become the server.
  • Set cabinet gruop settings to OFF since we only have one cabinet.
  • Optional: Set music selection time to 99.

Select ã‚˛ãƒŧãƒ č¨­åŽš (Game settings)

Select 配äŋĄã‚ĩãƒŧバãƒŧč¨­åŽš (Distribution server setting)

alt text

Set this setting to ã‚ĩãƒŧバãƒŧ (Server)

alt text

Select į­äŊ“ã‚°ãƒĢãƒŧãƒ—č¨­åŽš (Cabinet group setting). Set this setting to OFF

alt text

set éŸŗæĨŊé¸æŠžæ™‚é–“č¨­åŽš (Music selection time setting) to 99 or whatever alt text

Select įĩ‚äē† (Finish)

There will be a centered prompt notifying you that a restart is necessary to put your new settings into effect. Confirm both prompts. The game will now exit

alt text

TIP

Every time you start the game, the game will always ended up showing BAD during IP check. This cause the red dialog with spinner to pop up after the game load and you can't play it. To solve this, you have to go to this Service Menu, go to Network Settings, then run the Check button. That will make the spinner go away and you can then play the game.

Issue ​

  • If you use Aqua game server instead of ARTEMiS, Card profile name does not seems to save. It will always prompt for name entry after restarting the game. Use ARTEMiS game server instead!

Notes ​

  • Press Enter at the title screen to enter card (only if you enable aime card emulation). Use the default keys SDFGHJKL to interact with the input.

  • There is no way to disable Shop operating hours in the Service Menu. It’s either 7PM or 12AM. This is due to the legal arcade operation hour in Japan and Segatools cannot bypass it. So you must change your PC time if you want to play at those hours.

Card Reader ​

Emulated ​

Set the following to 1 to use the built-in emulated Aime card reader.

[aime]
; Enable Aime card reader assembly emulation. Disable to use a real SEGA Aime
; reader.
enable=1

Once created, the card will be stored in DEVICE/felica.txt. The content will be a hex card

With this setting enabled, press the default Enter key to load the card.

Physical ​

You MUST set the COM port for your Aime Card Reader to COM12. It won't work if you change it to another port and modify the -p argument in start.bat, because the game hard coded the serial port for NFC reader to be in COM12.

TIP

If you are a curious one like me, you probably saw the following argument in start.bat and thought you can just change the -p argument to the port you want. Well you could and the Aime Reader Host would listen on that port, but the game won't be able to read any NFC data from that port and you will see error at some point, because the game hard coded the serial port for NFC reader to be in COM12.

start /min inject -d -k chunihook.dll aimeReaderHost.exe -p 12

In segatools.ini, set the following to 0 to use the built-in emulated Aime card reader.

[aime]
; Enable Aime card reader assembly emulation. Disable to use a real SEGA Aime
; reader.
enable=0

You should see the following text shown in the inject.exe console window once you start the game.

alt text

It will also print the card ID read after you scan the card in game.

Troubleshooting ​

I see a red framed dialog with spinner that spin indefinitely. Pressing Start button or Enter didn't do anything ​

Every time you start the game, the game will always ended up showing BAD during IP check. This cause the red dialog with spinner to pop up after the game load and you can’t play it. To solve this, you have to go to this Service Menu, go to Network Settings, then run the Check button. That will make the spinner go away and you can then play the game.

References ​