Menu

Tree [c6facd] master /
 History

HTTPS access


File Date Author Commit
 .idea 2026-08-22 ken ken [9add57] Stereo resampler introduced
 .mvn 2026-03-11 ken ken [5ce1c7] maven user settings to stop interference with ~...
 docs 2026-07-11 ken ken [e8058e] cleanup
 lib 2026-08-18 ken ken [911d0f] usbsid driver updated to version 1.2
 src 2026-08-22 ken ken [c6facd] performance increased in the hot code path and ...
 .gitignore 2026-04-11 ken ken [cc4b8a] jiffydos added to distinguish loading times
 CHANGELOG.md 2026-08-22 ken ken [9add57] Stereo resampler introduced
 Jenkinsfile 2026-05-16 ken ken [66fb84] wrong command fix
 Jenkinsfile.whatssid 2026-05-16 ken ken [66fb84] wrong command fix
 README.md 2026-07-11 ken ken [e8058e] cleanup
 TODO.md 2026-07-11 ken ken [54782d] todo added
 jsidplay2.iml 2026-04-20 ken ken [b59a47] cleanup
 latest.properties 2026-06-13 ken ken [e3d945] Release Preparation
 pom.central.xml 2026-08-18 ken ken [19f78b] separate pom for maven central added
 pom.xml 2026-08-18 ken ken [911d0f] usbsid driver updated to version 1.2
 rule-set.xml 2026-03-29 ken ken [c90a1f] last warnings fixed

Read Me

JSIDPlay2

JSIDPlay2 is a highly compatible and cycle-exact Commodore 64 (C64) emulator. It is written in Java and features:

  • Emulation library of core functions for the C64 and supportive devices
  • A console player
  • A JavaFX user interface
  • High-performance WebAssembly/JavaScript version (using TeaVM) with additional worker thread support
  • Server-side streaming capability of C64 content with audio and video
  • WhatsSID? Music recognition system (what is currently played?)
  • A Network SID device to get connections over the socket
  • Included demo pages (e.g., c64jukebox.vue and various example pages)

Prerequisites to build the project

Java Requirements

  • Building: Latest Java LTS.
  • Runtime: Latest Java LTS.
  • IntelliJ IDEA (Community or Ultimate Edition) is recommended.

Build and Launch

Building the Project

Use the following command to build the project. Replace javafx.platform with your platform (linux, linux-aarch64,
win, mac, or mac-aarch64).

mvn -Djavafx.platform=linux clean install
  • PC Version: target/standalone
  • Website Version: target/deploy

Launching JSIDPlay2 using Maven

User Interface (JavaFX on PC)

mvn exec:java -Dexec.mainClass=ui.JSidPlay2Main

Server (Web Interface)

mvn exec:java -Dexec.mainClass=server.restful.JSIDPlay2Server

Then open start page http://127.0.0.1:8080 in your browser.

... or open demo
page http://127.0.0.1:8080/static/teavm/c64jukebox.vue in your
browser.

Documentation

For detailed server setup (NGINX, MySQL, WhatsSID), see docs/SERVER_SETUP.md.

For the developer release process, see docs/RELEASE_HOWTO.md.

For the JCommander usage, see docs/JCOMMANDER_USAGE.md.

For the latest changes, see CHANGELOG.md.

For plans, see TODO.md.

Running UI Tests

mvn -Djavafx.platform=linux clean install -P release

Note: Disable screensaver to avoid interference with tests.


Easy Launch using Docker

Prerequisites (Linux)

Allow the Docker container to open a window (once):

xhost +local:docker

Start/Stop JSIDPlay2 using docker-compose

  • Start: docker compose -f src/main/docker/docker-compose.XXX.linux.yml up
  • Stop: docker compose -f src/main/docker/docker-compose.XXX.linux.yml down

Examples:

  • Start Server: docker compose -f src/main/docker/docker-compose.server.linux.yml up

  • Start JavaFX UI: docker compose -f src/main/docker/docker-compose.ui.linux.yml up

  • Start Network SID Device: docker compose -f src/main/docker/docker-compose.netsiddev.linux.yml up