quoije ba21426b77 Stop previous stream when a new one starts; ease animations
Starting a movie now closes the current decode engine and bumps a playback
generation so the stale video/audio threads stop themselves (they were
overlapping the movie's canvas and audio). PlaybackEngine.close is idempotent.
Animation records now honor their accelMode (linear/accel/decel easing).
2026-09-16 12:20:47 -04:00

useless-umd-player

grrr

AI Generated

a standalone player for PSP UMD Video ISO images: open a disc, render its real menu, and play the movie (H.264 video + ATRAC3+ audio) with mouse and keyboard/media-key controls.

Status: playable. Opens a UMD Video ISO, plays the real RCO menu (rendered from the disc), and plays the movie (H.264 video + ATRAC3+ audio).

Build

Requires JDK 21 (Gradle auto-provisions it).

./gradlew build

Run the player

./gradlew ui:run --args="/path/to/disc.iso"

Controls:

  • ↑ ↓ ← → — navigate the menu
  • Enter — select
  • M — back to the menu
  • S — skip the current intro/track
  • Space / P — pause
  • F11 — fullscreen

CLI

The cli module has inspection/debug commands:

./gradlew cli:run --args="dump /path/to/disc.iso"          # metadata + playlist
./gradlew cli:run --args="rco <iso> UMD_VIDEO/RESOURCE/EN100000.RCO"  # menu data
./gradlew cli:run --args="play <iso> <streamName>"         # headless A/V sync test

License

GPL-3.0-or-later — see LICENSE.

S
Description
umd video player to enjoy limited dvd menus in 720x480 pixels
Readme GPL-3.0
875 KiB
Languages
Java 100%