Skip to content

Releases: pingw33n/openrb-338

OpenRB-338 2026.1103.0917

Choose a tag to compare

@github-actions github-actions released this 03 Nov 09:42

Changes since v2026.1031.0830 up to v2026.1103.0917: 5 commits, 2 listed (backlog commits are left out).

tools

  • sort the Mods menu by name, ASCII case folded, lowercase first (task-167)

tests

  • regenerate third-party manifests: 9 new mods, 2 repaired songs (task-168)

OpenRB-338 2026.1031.0830

Choose a tag to compare

@github-actions github-actions released this 31 Oct 08:51

Changes since v2026.1030.1842 up to v2026.1031.0830: 2 commits, 1 listed (backlog commits are left out).

tools

  • bundle the xkbcommon libraries in the AppImage (task-166)

OpenRB-338 2026.1030.1842

Choose a tag to compare

@github-actions github-actions released this 30 Oct 19:21

Changes since v2026.1029.1619 up to v2026.1030.1842: 29 commits, 13 listed (backlog commits are left out).

engine

  • song-mode save writes the pattern-mode copies, not live values (task-159)
  • AIFF chunk walk stops at the wanted chunk, as the DLL does (task-155)

cli

  • recrypt recovers files stored unscrambled, per file (task-161)
  • recrypt refuses mods scrambled with another key file (task-160)
  • mods sharing an INFO name: byte-order default, UI variants (task-151)

tools

  • repaint the panel only while it moves, cheaper frames (task-153)
  • UI panic writes a crash log and shows a native error box (task-157)
  • a switch value out of 0..1 draws, a missing part is not fatal (task-156)
  • Song Information 1.5x wider, fields fill it, shorter count (task-154)
  • file dialogs remember the last folder, songs and mods apart (task-144)
  • CI skips pushes and PRs that change only non-build files (task-152)

tests

  • regenerate the third-party manifests for the grown collections (task-165)

docs

  • the original loads the mods orb recrypt recovers (task-163)

OpenRB-338 2026.1029.1619

Choose a tag to compare

@github-actions github-actions released this 29 Oct 16:42

Changes in the first release (all of the history) up to v2026.1029.1619: 268 commits, 135 listed (backlog commits are left out).

engine

  • one-pass recording merge, 1.8 ms -> 0.13 ms on 10000 nodes (task-084)
  • msg 37 refuses a batch above the pool's free count (task-083)
  • rb-player preview player, the mod's startup sound (msg 58) (task-074)
  • one shared node pool per song for the track lists (task-082)
  • recording - Record button, the record hook and the merge (task-057)
  • the PCF's stale step slot on the 303 channels (task-072)
  • the Mods menu's mod change of an open song (song msg 19) (task-056)
  • the PCF's stale step slot is the 808/909 audio's return address (task-069)
  • the panel's live device messages (msg 41 sub ids) (task-055)
  • import ReBirth 1.x MIDI-file songs as Rebirth.exe 2.01 does (task-060)
  • rb recrypt and a 2047-byte embedded key window for mods (task-059)
  • third-party mods load as in the original (task-058) (task-058)
  • real-time player crate rb-player and rb play (task-043)
  • rbm crate, mod container, descrambling and samples (task-032)
  • mixer ctor track events; song-creation defaults documented (task-034)
  • msg 53 skips the refill over a playing song (task-050)
  • the PCF and the compressor (task-027)
  • the distortion and the delay (task-026)
  • the TR-909 device (task-025)
  • drum voices and the TR-808 device (task-024)
  • built-in drum samples loader and rb --rebirth-dll (task-020)
  • TB-303 devices, ReBirth 2.0 and Vintage sound (task-023)
  • sequencer clock, track events, chase, shuffle and loop (task-022)
  • frame, mixer, int16 output and export driver (task-021)
  • lookup tables generated and checked against the DLL (task-019)
  • song-to-engine model conversion and load message stream (task-018)
  • rbs crate, RBS 4.2 reader and writer (task-017)
  • Rust workspace scaffold (rbs, rb-engine, rb-cli) (task-015)

cli

  • find a song's mod by INFO name only, ignoring ASCII case (task-150)
  • orb play survives transient audio stream errors (task-139)
  • hide the developer options from the orb and OpenRB-338 help (task-137)
  • rename the project to OpenRB-338, binary orb, ORB_ variables (task-068)
  • rb info SONG prints the song's metadata (task-122)
  • rb mod recrypt and pack-standard read the CD image (--iso) (task-065)
  • rb mod recrypt verifies the DAT, checks files, takes many mods (task-064)
  • embed assets/Standard.rbm as the built-in kit (task-067)
  • rb mod group: pack-standard, recrypt, unpack and pack (task-097)
  • rb standard-mod, the built-in kit and panel as a mod (task-036)
  • rb loads only recrypted mods; recrypt the user's and shipped mods (task-063)
  • mods by name from --mod-dir, --mod, --rb20ful, --standard-kit (task-033)
  • rb render to WAV, FLAC and Ogg Vorbis (task-028)

tools

  • build.sh mounts DIST into the Docker build, checks the result (task-142)
  • drop the copyright note in Song Information (task-140)
  • release.yml fails prepare on a bad tag (pipefail) (task-141)
  • Song Information edits the title, text, web page and copyright (task-117)
  • About links to the new repository URL and the collections (task-138)
  • animate the logo at startup and in About (task-114) (task-114)
  • panel art clean-up (3D keys, LEDs, headers, new icon) (task-115)
  • one single-architecture .dmg per macOS target (task-136)
  • untrack original/ and ida/, document them as local only (task-066)
  • Linux UI GL fallback needs libegl1, smoke tests it (task-135)
  • draft release on a release tag, changelog and checksums (task-113)
  • Linux AppImage of OpenRB-338 (x86_64, aarch64), release.yml job (task-112)
  • Windows NSIS installers, GUI-subsystem UI exe with icon (task-111)
  • one version form YYYY.MMDD.HHMM in bundle, packages, tag, About (task-133)
  • packages build with a dist profile (fat LTO, stripped) (task-132)
  • macOS OpenRB-338.app in a universal .dmg, versions by build time (task-110)
  • rb-ui colors in one palette module (task-128)
  • rb-ui Song Information shows the last event (task-124)
  • rb-ui errors in a modal message box (task-130)
  • rb-ui File > Info and Save keep a 1.x song's facts (task-123)
  • rb-ui always draws the dark theme (task-127)
  • rb-ui saves a 1.x song with the engine's sorted tracks (task-125)
  • build scripts and CI for the six targets (task-108)
  • cap the panel's SVG raster size at the GPU texture limit (task-119)
  • enforce 100 columns with nightly rustfmt (task-120)
  • rb-ui Mods menu groups Refresh List, Info drops size note (task-118)
  • rb-ui logo is its own part, shown in About (task-116)
  • rb-ui settings file is TOML (rb/ui.toml) (task-107)
  • rb-ui Mods > Info shows the splash at 2000-era physical size (task-106)
  • rb-ui starts maximized; 808 mod name centered in its strip (task-103)
  • Help > Keyboard Shortcuts window (task-105)
  • Help > About with the logo, version, git hash and project link (task-102)
  • name the desktop app OpenRB-338 (binary, window title, app id) (task-104)
  • rb-ui Mods menu caches the mod list, Refresh List (task-101)
  • rb-ui File > Info opens centered in the window (task-100)
  • rb-ui plays the startup sound only when the kit changes (task-099)
  • rb-ui 808 shows the mod's splash and name in place of the selector (task-098)
  • rb-ui file dialog sidebar headings and buttons at normal size (task-096)
  • rb-ui File > Info shows the current song's information (task-095)
  • rb-ui Mods > Demo Song opens the current mod's Demo.rbs (task-094)
  • rb-ui Mods menu checks the current song's mod (task-093)
  • rb-ui shortcut texts say Cmd on macOS (task-092)
  • rb-ui File > New resets to the start state (task-091)
  • rb-ui open stops the playing song (task-090)
  • rb-ui Options checkbox 'Play Mod Startup Sound' (task-089)
  • the player, rb-ui and rb play refuse a song the pool refuses (task-088)
  • rb-ui plays the mod's startup sound on a song open and at start (task-087)
  • rb-ui panel redesign from the design session, app icon (task-085)
  • rb-ui wind, bar and loop arrows do nothing in pattern mode (task-081)
  • UI menu - load, save, export, choose mod, Vintage flag (task-047)
  • rb-ui no longer panics on pattern 32 of a 303 (task-077)
  • computer-keyboard control of the panel (spec section 10) (task-070)
  • in-app file browser (open/save song, export, choose mod) (task-046)
  • wire the panel to the real-time player (rb-ui) (task-045)
  • rb-ui, the panel window with the original's widgets (egui) (task-044)
  • SVG art set for the panel (assets/ui) and its generator (task-042)
  • rbsmsg.py converts RBS 4.0 songs (4.0 mixer converter) (task-061)
  • rb_export.py restores the user's ReBirth prefs after every run (task-062)
  • mod references in the corpus (mod, modapp sets) (task-031)
  • faster app export and N fit (fit.py, polled waits) (task-038)
  • rbm.py, rbhost mod loading, docs of the RBM format and key table (task-030)
  • rebirth_pids fails when tasklist cannot be parsed (task-035)
  • rbhost, an offline host for the original ReBirth.dll (task-011)
  • rb_export.py, the original app's export runner (task-008)
  • rbcmp.py, a render comparator (task-007)
  • rbs.py, an RBS 4.x song reader and writer (task-005)

tests

  • drop the removed 8-Track mod from the mods manifest (task-149)
  • pin rbhost's render of every third-party song (task-129)
  • rb-ui second Save of a 4.1 or 1.x song is byte-identical (task-131)
  • three external inputs, a CD-image test kit, synthetic recrypts (task-121)
  • find Python 3 portably; CI runs every test with --no-fail-fast (task-126)
  • resolve relative RB_* env paths against the workspace root (task-079)
  • song msg 19, the mod change, equals the DLL's in a live session (task-076)
  • rb-player live test waits by wall clock, no song-mode replay (task-073)
  • diag README says the wave-127 PCF songs export silence (task-039)
  • golden test over the whole corpus, rb compare (task-029)
  • corpus device tests against the engine's delay, drop TestDelay (task-049)
  • reference corpus (145 diag FLAC, 11 app FLAC, shipped hashes) (task-014)
  • diagnostic song set for the reference corpus (task-009)

docs

  • README with the logo animation, quick start and mod notes (task-109)
  • the local checkout folder is now openrb-338 too (task-068)
  • the GitHub repository is now pingw33n/openrb-338 (task-068)
  • drop original/ and ida/ from the repo; task-066 rewrite done (task-066)
  • mod change with several songs open sends msg 53 round trip (task-075)
  • UI spec of the original panel (layout, controls, behavior) (task-041)
  • original_bugs.md, the original's defects in one place (task-051)
  • Python test command in the brief, attribution rule for reviewers
  • rbhost reproduces the app's exports of all 145 diag songs (task-012)
  • determinism of the original's export per capture protocol (task-010)
  • engine state at export start and the app's realtime driving (task-004)
  • song load path from .rbs to engine messages (task-003)
  • rcs reaches the installation by absolute path
  • test machine guide, screenshots and shipped songs (task-002)
  • push main to origin after each merge