Open-source project
Legend-of-Dragoon-Modding/Severed-Chains avatar
Legend-of-Dragoon-Modding/Severed-Chains

Severed Chains: Legend of Dragoon reverse engineered into Java

Legend of Dragoon decompiled, reverse engineered, and ported to PC/Mac/Linux/Steam Deck

564 stars54 forksJavaLicense varies

At a glance

What is it?
Severed Chains is a decompiled and rewritten version of Legend of Dragoon that runs natively on PC, Mac, Linux and Steam Deck, with a modding API and an in-game updater. It is not an emulator: the original assembly is disassembled and rewritten in Java, and players still supply their own disc images.
Who is it for?
Severed Chains suits a player who owns the original Legend of Dragoon discs and wants a modern build with fixes, extras and mod support, since it is a native reimplementation rather than an emulator and runs on Steam Deck and Linux as readily as on Windows.
Can I use it commercially?
Not without permission. GitHub finds no licence file in the repository, and without a licence all rights are reserved by default: you may read the code but not reuse it. Check the README, or ask the authors, before using it.
Is it still maintained?
Yes. The repository last received commits 3 days ago.
What is it written in?
Mainly Java, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on October 22, 2026, and from our analysis. They are not legal advice.

Editorial analysis

A reimplementation, not an emulator

Severed Chains describes itself as Legend of Dragoon reverse engineered into high-level code with a modding API. The README is explicit about the mechanism: this is not an emulator, but assembly code disassembled and rewritten in Java. The README also states that AI was not used to create this project, which is a claim a reader is entitled to note either way.

That distinction determines everything else about the project. An emulator runs the original machine's code, which means the original's performance characteristics, its memory layout and its limitations. A rewrite in Java means the code is source you can read, refactor and extend, which is what makes a modding API possible at all. You cannot easily expose a scripting API into 68000 assembly running under a translation layer. You can when the game logic is Java source in your IDE.

The progress claims follow from that. The game is fully playable with no known crashes, many bugs in the original game have been fixed, there are many new features and options not in the original game, and there is a modding API with many features and more features in development.

The topic list on the repository is short, just java and reverse-engineering, and the primary language is Java, which fits the approach. The repository layout is a Gradle project with build.gradle, settings.gradle, a gradlew wrapper, src/, mods/, patches/, files/, gfx/, lang/, config/, pdns/, saves/ and isos/ directories, plus per-platform launch scripts: launch.bat, launch-linux, launch-macos and launch-steamdeck.

The disc images are still the user's problem

The copyright section is unusually clear and it defines the project's legal posture. Even though it is not an emulator, Severed Chains cannot be played without the user providing the LoD disk images. Assets are extracted from the ROMs at runtime, and the codebase does not include any official Legend of Dragoon code or assets.

That is the arrangement that keeps the project on the right side of the line: no copyrighted game files are distributed, and the user supplies their own copies of the game they bought. The isos/ directory in the repository is where those images go, and the contributing steps say to copy your ISOs or BINs of the LoD disks into that directory.

The practical consequence is that installation is not a download-and-run. You need the discs, either as ISO images or as BIN files, and the runtime pulls assets out of them. The project page at legendofdragoon.org/projects/severed-chains/ is where the README points people for downloads and a setup guide, so the shipped binaries and the setup instructions live outside the repository.

For contributors, the flow is a git clone, the discs into isos/, the project opened in an IDE with IntelliJ recommended, and Gradle configuring itself and downloading dependencies. The README notes that if Gradle does not configure automatically you can expand the gradle tab and click refresh, and that a lack of command line git can cause issues there. Java 25 is required.

Controllers, updates and the day-to-day experience

Controllers and gamepads are fully supported, including rumble, and keyboard controls are supported with mouse controls available in menus. The default controls are visible in the options menu, and controllers should be detected automatically. The README claims support for 1800+ controllers out of the box, backed by a gamecontrollerdb.txt at the repository root, and says that if a controller is missing from the database you should contact the project so it can be added.

The known issue is worth knowing about: there are known issues with using DS4windows, and possibly other controller emulators. If you do use DS4windows, the advice is to make sure your controller isn't hidden and to close DS4windows.

Updating is built into the game. When a new version is available, an Update Available button appears on the title screen, and clicking it downloads and applies the update automatically. The automatic updater preserves your saves, mods, ISOs and config, after which you restart the game. That last list is the detail that matters: the updater knows that ISOs are user-supplied and mods are user-created, so it does not touch them.

The release tags show a fast cadence around the current line: Release 3.0.0 on 2026-10-17, a Latest Development Build from 2025-06-22, and Recommended Build #2 Hotfix 1 from 2023-07-19. The distinction between a recommended build and a development build is a sign of a project that expects people to run different channels.

GPU selection on multi-GPU machines

Severed Chains supports GPU preference settings for systems with multiple graphics cards, which matters on laptops with integrated and discrete GPUs. The handling differs by platform, and the differences reflect how the launchers work.

On Linux and Steam Deck the preference is applied automatically based on your launch.conf setting, with no additional setup required. On Windows it requires one-time configuration, and there are two ways. The easy setup, which the README marks as recommended, involves running gpu-optional-setup.bat after launch.bat and following the prompts, and it is optional but makes GPU selection automatic. The manual setup means adding Severed Chains to Windows Graphics Settings, and the navigation path is spelled out:

text
   - Open Windows Settings > Display > Graphics
   - Click "Add desktop app" or "Browse"
   - Navigate to your Severed Chains folder and select `jdk25\bin\java.exe`
   - Click "Options" and choose your preferred GPU (Power saving or High performance)

The manual route points at the bundled Java runtime rather than at a native executable, which tells you the game runs on the JDK it ships with.

On UNIX systems the setting is edited directly in launch.conf in the game folder, with three values:

text
- `GPU_PREFERENCE=0` - Auto (let the system decide)
- `GPU_PREFERENCE=1` - Discrete GPU (NVIDIA/AMD dedicated graphics)
- `GPU_PREFERENCE=2` - Integrated GPU (Intel/AMD integrated graphics)

The launch.conf file and the three launch scripts at the repository root are the platform-specific entry points, and a log4j2.xml and log4j2-updater.xml are present, so logging is configured through Log4j 2.

The modding API is the reason for the rewrite

The modding API is listed both as a current feature, with many features and more features in development, and as the thing the rewrite was for. The repository carries a mods/ directory and a patches/ directory, and the README's pointer for anyone interested in the code is a Discord channel, the #modding channel, rather than a forum or a mailing list.

That structure tells you how the project expects extensions to work. A mods/ directory in the tree suggests mods are loaded from disk at runtime rather than compiled in, and patches/ suggests changes to the game itself are expressed as patches rather than as forks. Both are approaches that survive updates: the auto-updater can replace the game code while leaving user mods in place, and a patch can be reapplied to a new version.

The assets directory named files/ and the gfx/ directory hold the game's own extracted data, and the lang/ directory implies localisation is file-driven rather than compiled in. There is also a convert_memcard.sh script, which relates to the memory card format the original PlayStation game used for save data, and a jitpack.yml, which lets other Gradle projects depend on this one as a library through JitPack.

Where Severed Chains is the wrong choice

Three limits are structural. The first is that you must own the discs. There is no way to play Severed Chains without supplying the LoD disk images yourself, so for anyone without a copy of the original game this is not a substitute for buying or finding one. The second is that it is a Java program, and the README states Java 25 is required. That means a modern JDK must be present, the jdk25 folder with java.exe is what you point Windows GPU settings at, and the start-up cost is a JVM rather than a native binary. Third, the repository's licence field reads as unknown, with a LICENSE file present at the root but no recognised identifier, so anyone planning to reuse the code rather than play the game has to read that file themselves and cannot rely on a clear grant.

There is also the question of what a reimplementation inevitably is. The original game runs on hardware and a runtime that no longer exist, and the assembly had to be disassembled and rewritten, which means edge cases in the original logic can behave differently from the retail release even where the README claims bug fixes. The project states that the game is fully playable with no known crashes and that many original bugs have been fixed, but a reader deciding whether to trust that should note that the fixes are to the reconstructed code, not to a verified copy of the original.

The alternative approach, and the one a reader might assume, is an emulator. The difference is architectural rather than cosmetic: an emulator preserves the original hardware behaviour, so original bugs survive and original performance limits apply, while Severed Chains gives up that fidelity in exchange for a source code base that can be fixed, extended and scripted. For playing the game as intended, an emulator is the fidelity-preserving choice; for adding things that were never in the game, this one is the only one of the two that can.

Editorial conclusion

Severed Chains suits a player who owns the original Legend of Dragoon discs and wants a modern build with fixes, extras and mod support, since it is a native reimplementation rather than an emulator and runs on Steam Deck and Linux as readily as on Windows. It is the wrong tool if you do not own the game, since it cannot be played without the user's own disc images, and it is the wrong tool if you want an emulator, because the point of the project is to remove that layer entirely. Verify first that you can supply the ISOs or BINs of the LoD discs into the isos directory, that Java 25 is available, and note that the licence is listed as unknown while a LICENSE file sits at the repository root, and that the newest release is 3.0.0 from 2026-10-17.

Frequently asked questions

Is Severed Chains an emulator?

No. The README states it is not an emulator, but assembly code disassembled and rewritten in Java. The original Legend of Dragoon code is reverse engineered into high-level code so it can be extended with a modding API.

Do I need the original Legend of Dragoon discs to play Severed Chains?

Yes. The README says the game cannot be played without the user providing the LoD disk images, which are extracted for assets at runtime. Copy your ISOs or BINs of the LoD disks into the isos directory.

What do I need to build Severed Chains from source?

A git client with command line integration, the repository cloned locally, your ISOs or BINs of the LoD disks in the isos directory, an IDE with IntelliJ recommended, and Java 25, which the README states is required. Gradle configures the project and downloads dependencies automatically.

How do I choose a GPU on a laptop with integrated and discrete graphics?

On Linux and Steam Deck the preference is applied automatically from the launch.conf setting. On Windows you can run gpu-optional-setup.bat after launch.bat, or add the game to Windows Graphics Settings by selecting jdk25\bin\java.exe in your Severed Chains folder and choosing a preferred GPU.

How do updates work in Severed Chains?

When a new version is available an Update Available button appears on the title screen, and clicking it downloads and applies the update automatically. The updater preserves your saves, mods, ISOs and config, and you restart the game after it completes.

Official sources

  1. Issues
  2. Legend-of-Dragoon-Modding/Severed-Chains on GitHub
  3. Project website
  4. README
  5. Releases
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/legend-of-dragoon-modding-severed-chains.svg)](https://hysenlabs.com/projects/legend-of-dragoon-modding-severed-chains)

Was this useful?