Audition Java Source (RedBabana 2019 client)

Joined
Jul 28, 2011
Messages
124
Reaction score
63
#Audition Server - Setup Guide

A Java-based private server emulator for Audition Online (Season 5). This guide covers everything you need to get the server running and connect with the game client.

---

## Prerequisites

### 1. Java Development Kit 8 (JDK 8)

> **⚠️ Java 8 is REQUIRED. The server will NOT compile or run on Java 9+.**

Download one of these:
- [BellSoft Liberica JDK 8](https://bell-sw.com/pages/downloads/#jdk-8-lts)
- [Eclipse Temurin JDK 8](https://adoptium.net/temurin/releases/?version=8)
- [Oracle JDK 8](https://www.oracle.com/java/technologies/javase/javase8-archive-downloads.html)

Install to a known path (e.g., `C:\Program Files\BellSoft\LibericaJDK-8`).

Verify:
```
set JAVA_HOME=C:\Program Files\BellSoft\LibericaJDK-8
set PATH=%JAVA_HOME%\bin;%PATH%
java -version
```
Should show `1.8.x`.

### 2. Apache Maven 3.6+

- Download from [maven.apache.org](https://maven.apache.org/download.cgi)
- Extract to `C:\apache-maven`
- Add `C:\apache-maven\bin` to your system PATH

Verify:
```
mvn -version
```

### 3. MySQL 5.7+ (Optional)

The server supports MySQL or H2 embedded database. H2 requires no setup but data is lost on restart.

For MySQL:
- Download from [dev.mysql.com](https://dev.mysql.com/downloads/mysql/)
- Install and start the MySQL service

---

## Step 1: Build the Server

Open a terminal in the project root directory and set Java 8:

**Windows:**
```cmd
set JAVA_HOME=C:\Program Files\BellSoft\LibericaJDK-8
set PATH=%JAVA_HOME%\bin;%PATH%
mvn clean package -DskipTests
```

**Linux/Mac:**
```bash
export JAVA_HOME=/path/to/jdk8
export PATH=$JAVA_HOME/bin:$PATH
mvn clean package -DskipTests
```

Or simply run `build.bat` (Windows).

The output JAR will be at `target/agx-server-1.0.0.jar`.

---

## Step 2: Configure the Database

### Option A: H2 Embedded (Easy, no setup)

Edit `server.properties`:
```properties
database.type=h2
```
That's it. The database file is created automatically at `./data/agx_db`.

### Option B: MySQL (Persistent)

1. Create the database and user:
```sql
CREATE DATABASE audition_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'audition_user'@'localhost' IDENTIFIED BY 'your_password';
GRANT ALL PRIVILEGES ON audition_db.* TO 'audition_user'@'localhost';
FLUSH PRIVILEGES;
```

Or run:
```
mysql -u root -p < sql/000_create_user.sql
mysql -u root -p < sql/001_create_schema.sql
```

2. Edit `server.properties`:
```properties
database.type=mysql
database.host=localhost
database.port=3306
database.name=audition_db
database.username=audition_user
database.password=your_password
```

> **Note:** The table `Character` and columns `set`, `read` are MySQL reserved words. The code handles this with backtick escaping. If you get errors about NULL values in existing data, ensure all numeric columns have default values (not NULL).

---

## Step 3: Start the Server

```cmd
set JAVA_HOME=C:\Program Files\BellSoft\LibericaJDK-8
set PATH=%JAVA_HOME%\bin;%PATH%
java -jar target/agx-server-1.0.0.jar
```

Or run `start-server.bat`.

You should see:
```
Audition Reborn v.0.0.1 startup
Validated 93 packet types' request and response classes
Login server startup - Socket opened: port 18505
Game server startup - Socket opened: port 18506
File transfer server startup - Socket opened: port 18510
```

The first user account is created automatically (if using H2) or you can configure test credentials in `AuditionRebornApplication.java`.

---

## Step 4: Client Setup

### 4.1 XTrap Bypass

The Audition client includes XTrap anti-cheat which will kill the process after ~75 seconds. You need to replace it with a stub DLL.

**Generate the stub:**
```
python build_xtrap_stub.py
```

This creates a `XTrapVa.dll` (2KB) in the `XTrap/` folder with no-op exports (`XProc1` through `XProc9`).

**Install:**
1. Go to your Audition client's `XTrap/` folder
2. Rename the original `XTrapVa.dll` to `XTrapVa.dll.backup`
3. Copy the generated `XTrapVa.dll` into the `XTrap/` folder

### 4.2 IP Encoder

The client needs an encoded IP parameter to connect. For `127.0.0.1` (localhost), use:

```
Audition.exe /t3enter 0F007E346F540C55641C5A7E074364
```

You can use the `ipencoder` tool (if available) to generate parameters for other IPs.

### 4.3 Create a Launch Script

Create `play.bat` in your Audition client folder:
```cmd
Echo off
Audition.exe /t3enter 0F007E346F540C55641C5A7E074364
```

### 4.4 Launch

1. Start the server (Step 3)
2. Run `play.bat` in the client folder
3. Log in with any username/password (new accounts are created automatically with H2, or use the configured test account)
4. Create your character name
5. Enter the Pin (000000 for new accounts)
6. Select a channel and enter the Dancing Hall

---

## Step 5: Music Headers

The server needs `music_headers.dat` to validate songs during gameplay. 202 songs are pre-included.

### How It Works

When a game starts, the client sends a music filename (e.g., `k1018.tbm`). The server looks up the corresponding header in `music_headers.dat` and sends it back. The client validates this header against its local `.tbm` file.

### Available Songs

- **200 standard songs** (k1013-k1154) — Standard 4key/8key and Beat Rush modes
- **20 beat-up songs** (kb1001-kb1025)
- **46 guitar entries** (kg*) — Headers sent but may be rejected by some client versions

### Adding More Songs

If you have `.thd` header files from a compatible server:

1. Place them alongside the client's `.tbm` files
2. Run `python generate_music_headers.py` to create a new `music_headers.dat`
3. Restart the server

To analyze which songs are available:
```
python analyze_music.py
```

---

## Server Ports

| Service | Port | Notes |
|---------|------|-------|
| Login Server | 18505 | Authentication and character selection |
| Game Server | 18506 | Gameplay, channels, rooms |
| File Transfer | 18510 | Asset serving |

Ports are hardcoded in the source code (`LoginServer.java`, `GameServer.java`, `FileTransferServer.java`).

---

## Troubleshooting

### "Java 9+ module error" during build
You're using the wrong Java version. Set `JAVA_HOME` to JDK 8.

### Client disconnects immediately after login
- Check that the Game Server is running on port 18506
- Verify `LoginHandler.java` sends `127.0.0.1` as the game server IP

### Client closes after ~75 seconds
XTrap is active. Install the stub DLL (Step 4.1).

### Client closes when entering Dancing Hall
The server must have exactly 93 packet types. Check the startup log for `Validated 93 packet types`.

### "Music code does not match" error
The music header doesn't match the client's `.tbm` file. This song is incompatible with the current headers.

### "Music Not Found" error
The `.tbm` file doesn't exist in the client's `abm/` folder, or no header is available on the server.

### NULL value errors with MySQL
Run this SQL to fix existing data:
```sql
UPDATE `Character` SET `set`=0 WHERE `set` IS NULL;
UPDATE `Character` SET PinUnlockTime=0 WHERE PinUnlockTime IS NULL;
UPDATE `Character` SET pinAttempt=0 WHERE pinAttempt IS NULL;
UPDATE `Character` SET ban=0 WHERE ban IS NULL;
-- Add similar for any other columns with NULL values
```

### Scoreboard doesn't close after song ends
The server detects end-of-game in two ways:
1. `lastRound=1` flag in dance packets (standard mode)
2. Client sends `ResultsRequestPacket` (some modes)
3. Any `GAME_END` packet subtype is routed to results

If none of these triggers, the game may hang. This affects some non-standard game modes.

---

## Project Structure

```
agx-server/
├── pom.xml # Maven build config
├── server.properties # Database and server config
├── music_headers.dat # Song validation headers (202 songs)
├── build.bat # Build script (sets Java 8)
├── start-server.bat # Launch script
├── build_xtrap_stub.py # XTrap bypass DLL generator
├── analyze_music.py # Music file analyzer
├── generate_music_headers.py # Header generator from .thd files
├── src/main/java/agx/
│ ├── AuditionRebornApplication.java # Entry point
│ ├── game/ # Game entities (Character, Session, Inbox)
│ ├── net/ # Networking (Client, Crypto, Packets)
│ ├── password/ # PBKDF2 password hashing
│ ├── persistence/ # Database repositories (Hibernate)
│ ├── server/ # Server logic and packet handlers
│ └── util/ # Utilities (ByteBuffer, Hex)
└── sql/ # Database setup scripts
```

---

Normal mode has approximately 200 functional songs.

Guitar mode is not working at the moment. BeatUp is functional with some songs.

Needs improvements, implement everything.


Download

Server:
Client:
 
i can login but how i can config music header or how to install it
 
Last edited:
This is great and very rare server with java program.

But this is too complicated for server-side settings, such as adding beat-up music, avatar, and other music, compared to Windows, which simply places them.
 
This is great and very rare server with java program.

But this is too complicated for server-side settings, such as adding beat-up music, avatar, and other music, compared to Windows, which simply places them.
Because this is not finish server file. Full source code missing packet
 
is sad,no development advance into this files. is the first version of nexus server. it impossible developer into this files. but it good share compiled server.
This is great and very rare server with java program.

But this is too complicated for server-side settings, such as adding beat-up music, avatar, and other music, compared to Windows, which simply places them.
 
is sad,no development advance into this files. is the first version of nexus server. it impossible developer into this files. but it good share compiled server.
It's not impossible to work with it,

it's very laborious, but knowing what you're doing, it works. I'll be back to working on it soon and it will be possible to use new clients.
 
It's not impossible to work with it,

it's very laborious, but knowing what you're doing, it works. I'll be back to working on it soon and it will be possible to use new clients.
the problem is. that source code is maked for jackup team and it obsolete. need make and sniff all client again. incluided listener and packet reader into reverse eng. good luck bro. it very hard
 
It's definitely a lot of work.
But the service is well worth it, especially with AI these days.
YES IA HELPS!! hope can request and digging the missing files. this first version season 5 is a starting of emulator java. hope u can make it.
 
You disappeared, dude, I was calling you on Discord....
Add me if you need anything, you lost your Discord connection again.

just add it to Litch
Hi i send you a friend request on discord

Maybe i can help i have Claude code Premium
 
I've got the Audition Java source (RedBabana 2019 client) building and running locally — server's up on H2, client connects, login works, and I've set up custom accounts with gender/level/currency all functioning. So the core is solid and I'm committed to developing this further.


I've hit a few walls that are resource/tooling problems rather than code, and I'm hoping the community can point me in the right direction:


1. ACV extraction. The client's data is in encrypted .acv archives (I checked — they're not just packed, the entropy is basically 8.0, so fully encrypted). Does anyone have an ACV extractor/decryptor that works with the RedBana 2019 client? This is my biggest blocker — I need it to get item IDs for the Mall and to understand the game data.


2. Item IDs / Mall catalog. The Mall is a stub in this source (returns 0 items). Before I implement the catalog, I need valid item IDs for this client. Is there an existing item-ID list/dump for RedBana 2019, or does that come out of the ACV files once extracted?


3. Music files. Some songs error with "file does not exist" (missing .tbm in abm/). Does anyone have a complete RedBana 2019 abm/ folder, and matching .thd headers so I can regenerate music_headers.dat? I want to avoid mixing files from other client versions (Next Level etc.) since I'm worried about format/header mismatches — is that a valid concern, or are .tbm files generally cross-compatible?


4. General advice. For anyone who's developed on this source — what were your biggest early hurdles, and what tools/resources should I grab now before I go deeper?

2026_7_5_20.1.25 - Audition Java Source  (RedBabana 2019 client) - RaGEZONE Forums

I'll happily share my progress and any fixes I make back to the community. Thanks in advance for any pointers.
 
Last edited:
Could you send 80.acv and 100.acv? I might be able to help.
 
Back