Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
111 commits
Select commit Hold shift + click to select a range
a1403cc
fix Alt+Key search
dgruss Mar 7, 2026
6acbf4f
let alt keys search more than 1 char
dgruss Mar 7, 2026
bbcdac0
allow alt+key to escape from current folder if no match is found
dgruss Mar 25, 2026
b17c1aa
Fix editor mouse action collisions and smaller editor bugs
dgruss May 2, 2026
098b644
improve readability
dgruss May 2, 2026
c4e004c
derive hitbox from theme
dgruss May 2, 2026
568e228
Fix editor toolbar button theme mapping
dgruss May 2, 2026
550b400
Fix editor mouse click and drag collisions
dgruss May 2, 2026
9c61b1d
handle selecting a different note while in text edit mode
dgruss May 3, 2026
3eaa855
avoid 0 length notes from accidental double double click
dgruss May 3, 2026
3bc6ed0
editor save error button: fix scaling, allow saving anyways, go to er…
dgruss Mar 17, 2026
2153292
Normalize editor MIDI preview octave
dgruss May 10, 2026
f867964
allow to full screen the video preview with V in the song selection
dgruss Mar 6, 2026
f3961b8
jukebox replacement: a autoplay loop mode for the song screen
dgruss Mar 7, 2026
0b6aa50
show lyrics in loop mode
dgruss Mar 7, 2026
fc3c4de
support duets in loop mode lyrics display
dgruss Mar 7, 2026
81666f5
make elements themeable
dgruss Mar 7, 2026
68b920a
load lyrics if they have not been loaded so far
dgruss Mar 8, 2026
1ae8365
completely refactor players to allow any player count
dgruss Apr 26, 2026
3028abe
allow to full screen the video preview with V in the song selection
dgruss Mar 6, 2026
3b2658b
jukebox replacement: a autoplay loop mode for the song screen
dgruss Mar 7, 2026
c7fcc5b
show lyrics in loop mode
dgruss Mar 7, 2026
a460e4b
support duets in loop mode lyrics display
dgruss Mar 7, 2026
d1b69f7
make elements themeable
dgruss Mar 7, 2026
953f530
load lyrics if they have not been loaded so far
dgruss Mar 8, 2026
9f93900
link main menu jukebox button to loop mode
dgruss Mar 7, 2026
23566d9
remove jukebox throughout and link remaining buttons to loop mode
dgruss Mar 7, 2026
1e4c1ca
sustain music across screens
dgruss Mar 7, 2026
0919212
sustain music also from sing screen
dgruss Mar 8, 2026
7bdd13a
sustain music when going back from player selection
dgruss Mar 8, 2026
2e89033
Improve theme and skin inheritance handling
dgruss Apr 26, 2026
593361c
make duets go into highscore
dgruss Dec 23, 2025
67bb920
change top5 to configurable top N players
dgruss Dec 23, 2025
f70b1ac
more stats + adjust all languages for that
dgruss Dec 23, 2025
99d6845
per player delay via ini and reload them in the right places
dgruss Sep 8, 2025
85728b3
handle repeat keys in editor when shifting notes
dgruss Dec 23, 2025
ebb3aad
fix broken timings of clicks and midi notes in the editor
dgruss Dec 6, 2025
0cd9474
extend translation to help system
dgruss Dec 10, 2025
6262a5a
remove duplicate bar
dgruss Dec 24, 2025
2e73f13
fix broken update.py so that it does not delete translated help anymo…
dgruss Dec 24, 2025
71c2a72
add a scorebar feature similar to that from CMD mod
dgruss Jan 3, 2026
363d432
implement a scaling mechanism that allows themes to scale from 4:3 to
dgruss Jan 17, 2026
d49a3cc
scale note area as well? does not look good
dgruss Feb 21, 2026
98955db
remove letterbox/pillarbox
dgruss Feb 24, 2026
e81f139
replace more hardcoded screen sizes
dgruss Feb 24, 2026
c1b6453
add missing scalemodes to avatar frames
dgruss Mar 8, 2026
ecae916
fix unicode issue on windows
dgruss Jan 30, 2026
c67974c
allow much larger textures
barbeque-squared Feb 24, 2026
e00ece9
use multisampling
barbeque-squared Feb 24, 2026
eb6f615
don't crash if language file cannot be loaded. fallback to english, t…
dgruss Mar 1, 2026
bd83e1d
whitespace fixes
dgruss Mar 1, 2026
355de44
don't suggest uninstall on reinstall and don't delete avatars unless …
dgruss Mar 1, 2026
a414326
check whitespace issues locally within the Makefile
dgruss Mar 6, 2026
61b73da
make more elements themeable
dgruss Mar 6, 2026
661ea7f
allow to full screen the video preview with V in the song selection
dgruss Mar 6, 2026
49972a4
prevent Windows from making a screenshot while we make a screenshot
dgruss Mar 7, 2026
7009e17
fix Alt+Key search
dgruss Mar 7, 2026
1b34071
write song errors into a separate log file
dgruss Mar 10, 2026
2fd9e41
allow playlist restriction for all party modes
dgruss Mar 12, 2026
8c8ee6f
show how perfect singing scores would split up to normal notes, line
dgruss Mar 13, 2026
98915e7
don't show background in editor when nothing is playing
dgruss Mar 24, 2026
2bd9242
allow disabling buttons in theme
dgruss Mar 22, 2026
464fe8e
Remove legacy OpenCV bindings
dgruss Apr 26, 2026
7b8b0ad
Fix playlist selection, scrolling, and non-fixed start behavior
dgruss Apr 20, 2026
8ecb828
respect z score
dgruss Mar 13, 2026
cdac4b9
add more playlist control to the game
dgruss Apr 27, 2026
ab8d9ae
midi volume control should be immediate and include midi emulation
dgruss May 2, 2026
ca08755
save and restore midi volume via ini
dgruss May 2, 2026
c2b5c45
round scores to whole numbers, but not multiples of 10
barbeque-squared May 3, 2026
944e0f7
displayed scores while singing should also not round to multiples of 10
barbeque-squared May 5, 2026
73a1abf
use if instead of while
barbeque-squared May 5, 2026
b48ba11
Build AppImage with Debian Jessie instead of CentOS 7
dgruss May 5, 2026
908a651
Fix song list mouse hitboxes and tag refresh
dgruss May 6, 2026
11025e7
Show absolute pitch diagnostics
dgruss May 10, 2026
9fe5c13
Check pitch threshold across full buffer
dgruss May 10, 2026
aaf8803
remove left over LogConsole from rebase
dgruss May 13, 2026
eeed624
Merge branch 'midi-usdx-tone-range' into usdxbeta
dgruss May 13, 2026
ddeaa77
Merge branch 'editormouse' into usdxbeta
dgruss May 13, 2026
4d8b3f2
Merge branch 'themeskininheritance' into usdxbeta
dgruss May 13, 2026
13575d2
Merge branch 'fixeditorbutton' into usdxbeta
dgruss May 13, 2026
af36690
Fix editor note splitting regressions
dgruss May 13, 2026
c3ec015
Add VOCALS tag support
dgruss May 13, 2026
38018c3
Add editor vocals waveform preview
dgruss May 13, 2026
38fdb8f
Merge branch 'pr/vocals-tag-support' into usdxbeta
dgruss May 13, 2026
60de242
Merge branch 'pr/editor-vocals-waveform' into usdxbeta
dgruss May 13, 2026
1ceb186
Merge branch 'altkeys2' into usdxbeta
dgruss May 13, 2026
bee19a2
Merge branch 'sustainmusic' into usdxbeta
dgruss May 13, 2026
7833d86
Merge branch 'newjukebox' into usdxbeta
dgruss May 13, 2026
9d7bcd1
Merge branch 'removejukebox' into usdxbeta
dgruss May 13, 2026
b8623b1
Merge branch 'refactorplayers' into usdxbeta
dgruss May 13, 2026
49f43f3
fix sustainmusic regressions from merging
dgruss May 13, 2026
4783604
Refresh active playlists during song preview
dgruss May 15, 2026
f99d1d9
Merge branch 'reloadplaylists' into usdxbeta
dgruss May 15, 2026
ae983f4
Merge branch 'master' into usdxbeta
dgruss May 15, 2026
c1f8ef4
work in progress
dgruss Apr 30, 2026
83b5af0
support for usdxrelay
dgruss Apr 30, 2026
6f1f156
add usdx-bridge
dgruss Apr 30, 2026
9633792
per player delay via ini
dgruss Sep 8, 2025
3a9ad99
reload delays in the right places
dgruss Sep 8, 2025
f8ae60c
..
dgruss May 1, 2026
5d2eb01
..
dgruss May 1, 2026
fc64c82
..
dgruss May 1, 2026
d70c5a6
readd song catalog to bridge
dgruss May 18, 2026
f51f768
Merge branch 'master' into api
dgruss May 18, 2026
8f6fb6c
bridge fixes + communicate when music stops
dgruss May 18, 2026
c46f002
allow game to select client flavor
dgruss May 18, 2026
1a0a3f5
..
dgruss May 18, 2026
aec7bc6
unify song -> sing screen path and reload player names on all paths
dgruss May 19, 2026
fef5019
load highscores earlier
dgruss May 20, 2026
7aa64c8
fix regression from 1 scoring using outdated score positions
dgruss May 20, 2026
0203e03
add clarity theme
dgruss May 20, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 10 additions & 0 deletions DEVELOPMENT.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,16 @@ A git version of this SVN can be found in the [legacy-sourceforge-svn-mirror](ht
- Don't let anyone else tell you what to work on. Do what you like and be free!
Have fun and enjoy working on a game that easily can hit 5.000 downloads in a week. This is very rewarding work and you can learn a lot!

### Whitespace checks
- CI checks trailing whitespace in changed lines under `src` (excluding `src/lib` and `src/webSDK`).
- Local one-liner (same check as CI, with `origin/master` as base):
`git -c core.whitespace=blank-at-eol diff --color --check "$(git merge-base HEAD origin/master)" -- './src' ':!./src/lib' ':!./src/webSDK'`
- Make targets:
`make whitespace-check` (fails on issues), `make whitespace-warn` (warning only).
- Normal build targets (`make`, `make debug`, `make release`, ...) now run `whitespace-warn` after the compile step.
- If your base branch is different, override it:
`BASE_REF=origin/main make whitespace-check`

### About the engine / used libraries:
- **SDL2** is used as general framework for spawning the window, getting keyboard / other input, and getting microphone and speaker device lists stuff. SDL2 also gets the OpenGL context for the window for us.
- **OpenGL** is used for all the graphics drawing + rendering stuff. Currently, this is mostly based on the horribly old OpenGL 1.x drawing stuff. If you know OpenGL >2.1 / OpenGL ES then please help to implement the required shading stuff and replace the old opengl instructions by the new ones. I already ported to the **dglOpenGL** library, so anything up to OpenGL 4.x should be fully supported and easily usable - just bear in mind there is lots of hardware out there that doesn't do anything newer then OpenGL 3 feature set. Also, if you don't know OpenGL that much but know SDL2 quite good, feel free to switch from directly calling OpenGL to the functions which are provided by SDL2.
Expand Down
26 changes: 25 additions & 1 deletion Makefile.in
Original file line number Diff line number Diff line change
Expand Up @@ -133,6 +133,7 @@ BUILD_TARGETS = all debug release rebuild build
.PHONY: $(BUILD_TARGETS)
$(BUILD_TARGETS): all-deps
$(MAKE) -C $(USDX_SRC_DIR) $@
@$(MAKE) --no-print-directory whitespace-warn

.PHONY: all-deps
all-deps:
Expand Down Expand Up @@ -187,6 +188,29 @@ tidy:
# Backup files
find $(srcdir) -name "*~" -o -name "*.bak" -o -name "*.orig" | xargs $(RM)

# check for trailing whitespace in the same paths as CI
.PHONY: whitespace-check
whitespace-check:
@base_ref="$${BASE_REF:-origin/master}"; \
if ! git rev-parse --is-inside-work-tree >/dev/null 2>&1; then \
echo "error: whitespace-check must run inside a git checkout"; \
exit 1; \
fi; \
if ! git rev-parse --verify "$$base_ref" >/dev/null 2>&1; then \
echo "error: git ref '$$base_ref' not found (set BASE_REF=... if needed)"; \
exit 1; \
fi; \
base_sha=`git merge-base HEAD "$$base_ref"`; \
git -c core.whitespace=blank-at-eol diff --color --check "$$base_sha" -- './src' ':!./src/lib' ':!./src/webSDK'

# warning-only variant for local builds
.PHONY: whitespace-warn
whitespace-warn:
@$(MAKE) --no-print-directory whitespace-check || { \
echo "warning: whitespace issues detected (run 'make whitespace-check' for details)"; \
true; \
}


#################################################
# auto-update
Expand Down Expand Up @@ -277,7 +301,7 @@ install-data:
install-data-recursive ; \
fi
$(MAKE) RECURSIVE_SRC_DIR="$(USDX_GAME_DIR)/webs" \
RECURSIVE_DST_DIR="$(DESTDIR)$(INSTALL_DATADIR)/themes" \
RECURSIVE_DST_DIR="$(DESTDIR)$(INSTALL_DATADIR)/webs" \
install-data-recursive
$(INSTALL_DATA) "LICENSE" "$(DESTDIR)$(INSTALL_DATADIR)/LICENSE"

Expand Down
8 changes: 2 additions & 6 deletions dists/lazarus/ultrastardx-win.lpi
Original file line number Diff line number Diff line change
Expand Up @@ -518,8 +518,9 @@
<IsPartOfProject Value="True"/>
</Unit118>
<Unit119>
<Filename Value="screens\UScreenJukebox.pas"/>
<Filename Value="base\uunicodestringhelper.pas"/>
<IsPartOfProject Value="True"/>
<UnitName Value="UUnicodeStringHelper"/>
</Unit119>
<Unit120>
<Filename Value="screens\UScreenOptionsWebcam.pas"/>
Expand Down Expand Up @@ -550,11 +551,6 @@
<IsPartOfProject Value="True"/>
<UnitName Value="LazUtils"/>
</Unit126>
<Unit127>
<Filename Value="base\uunicodestringhelper.pas"/>
<IsPartOfProject Value="True"/>
<UnitName Value="UUnicodeStringHelper"/>
</Unit127>
</Units>
</ProjectOptions>
<CompilerOptions>
Expand Down
Loading