Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

0.7.0 #252

Merged
merged 169 commits into from
Jun 29, 2022
Merged

0.7.0 #252

Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
169 commits
Select commit Hold shift + click to select a range
97a2396
Fix death bubble randomly getting very big
Wieku Apr 28, 2022
68c5925
Don't pack UV, fixes 1px sprites being dim
Wieku May 8, 2022
605ee36
Move a lot of main.go code to app/app.go
Wieku May 8, 2022
2929caa
Add minplayer setting
PercyDan54 May 16, 2022
cc13ec8
Count alive players by decreasing
PercyDan54 May 16, 2022
7897385
Fix ffmpeg being launched incorrectly when combining
jamiegyoung May 21, 2022
eade01a
Merge pull request #244 from jamiegyoung/ffmpeg-fix
Wieku May 21, 2022
c135e02
Merge branch 'dev' of github.com:Wieku/danser-go into dev
Wieku May 21, 2022
cc572dd
Add tags and other stuff for config ui generator
Wieku May 21, 2022
d877cec
Change ShiftX and ShiftY order
Wieku May 21, 2022
93f08fd
Allow to load config without attaching it to global context
Wieku May 21, 2022
97fca1f
Change copyright date in .exe
Wieku May 22, 2022
8648ef3
Change FileDescription to "DAИSER"
Wieku May 25, 2022
ab40fde
Add preciseprogress argument
Wieku May 26, 2022
cc7cd89
Adjust position/resolution ranges a bit
Wieku May 26, 2022
980c0b1
Return only default if skin directory doesn't exist
Wieku May 26, 2022
485760a
Add file browser tag
Wieku May 27, 2022
a941200
Rename Windowed size to Windowed resolution
Wieku May 27, 2022
de502ca
Fix GraceEndTime and BubbleMinimumCombo ranges
Wieku May 27, 2022
03f53d8
Add some labels
Wieku May 27, 2022
04e8ad2
Forbid danser launching with -settings=credentials or -settings=launcher
Wieku May 27, 2022
307acc7
Change the label to "Add metronome to Beat scale"
Wieku May 27, 2022
a4f019c
Switch from "go func(){}()" to "goroutines.Run(func(){})" which provi…
Wieku May 29, 2022
c5da5c9
Build danser with static libwinpthread, libgcc and libstdc++
Wieku May 29, 2022
859eb16
Switch from `Recording.Profile`, `Recording.Preset` and `Recording.En…
Wieku May 29, 2022
b415bf3
Fix hevc_qsv using h264_qsv config
Wieku May 29, 2022
70931a1
Add starsVersion to database
Wieku Jun 5, 2022
137e6c2
Allow beat synced to return to its resting position if music and bMap…
Wieku Jun 5, 2022
945f5f7
Add UpdateStarRating to database
Wieku Jun 5, 2022
a77492d
Add conditional "showif" tag to settings spec
Wieku Jun 5, 2022
4145c31
Add Parallax.Enabled option
Wieku Jun 5, 2022
ce3abec
Add Logo.Enabled option
Wieku Jun 5, 2022
1b9b906
Add ranges to momentum mover settings
Wieku Jun 5, 2022
d0148b5
Show 0% progress in preciseprogress mode
Wieku Jun 5, 2022
b7c9153
Remove "slider is broken" messages
Wieku Jun 5, 2022
886fabb
Add parseColors flag to ParseObjects
Wieku Jun 6, 2022
69bfe4f
Use buffer pool in beatmap parsers
Wieku Jun 6, 2022
877c97d
Add "diffCalcOnly" to Objects parser
Wieku Jun 6, 2022
24cf209
Add progress listener to UpdateStarRating
Wieku Jun 6, 2022
ecb11be
Use only one thread in star rating calculator
Wieku Jun 7, 2022
938a8e6
Add import listener to database.LoadBeatmaps
Wieku Jun 7, 2022
5307ccb
Update color of all triangles instantaneously
Wieku Jun 8, 2022
ec946d4
Add an option to load the background without default texture
Wieku Jun 8, 2022
4e3d9c6
Change GetColor() to return color.Color instead of mgl32.Vec3
Wieku Jun 10, 2022
9c86899
Move confWOZeros to mutils.FormatWOZeros
Wieku Jun 10, 2022
67e084d
Add util.FormatSeconds
Wieku Jun 10, 2022
b896295
Add launcher code (oh god why)
Wieku Jun 10, 2022
46e76ae
Add new dist method with 2 executables to not mess with OBS
Wieku Jun 10, 2022
2778364
Fix visualiser being stuck for t/50ms frames if it was not updated for t
Wieku Jun 12, 2022
fc34c3a
Show tooltip with a .json path
Wieku Jun 12, 2022
9e39db8
Fix sliders jumping their width on opening the popup for the first time
Wieku Jun 13, 2022
681be51
Rename slider functions
Wieku Jun 13, 2022
76a7c1f
Use table instead of arbitrary calculations for mode como
Wieku Jun 13, 2022
4cf3322
Fix progress bar width
Wieku Jun 13, 2022
1d65b84
Align pmode combo at the bottom unless recording is in progress
Wieku Jun 13, 2022
c883528
Use centerTable instead of calculating the cursor offset manually
Wieku Jun 13, 2022
62d9438
Wrap map text earlier
Wieku Jun 13, 2022
3f3a012
Add placeholder "Launcher settings" and "About" buttons
Wieku Jun 14, 2022
74bc0bc
Add basic "About" popup
Wieku Jun 14, 2022
d84a242
Add some sanity levels for sliders to screw gimmick map creators (XNO…
Wieku Jun 15, 2022
4b81693
Add sanity limit to follow points
Wieku Jun 15, 2022
ebd2a4a
Make update checker more generalized
Wieku Jun 16, 2022
e067ee0
Centralize message popup generation
Wieku Jun 16, 2022
32e444c
Show danser updateness status in About->Check for updates
Wieku Jun 16, 2022
69ad03a
Add "CheckForUpdates" to launcher config
Wieku Jun 16, 2022
102d630
Add update check on launcher's start if CheckForUpdates is true
Wieku Jun 16, 2022
d5c47cd
Add launcher settings popup
Wieku Jun 16, 2022
1bb58a3
Print video location
Wieku Jun 16, 2022
7adb0ba
Add an option to show exported videos/images in explorer
Wieku Jun 16, 2022
7166986
Fix SD/PF replays causing index out of range panic in ruleset
Wieku Jun 16, 2022
76d8565
Add Abs and Compare functions, loosen constraints on Min, Max, Clamp …
Wieku Jun 16, 2022
e763701
Add sorting to song select
Wieku Jun 16, 2022
ad4801f
Add a button to sort ascending/descending
Wieku Jun 16, 2022
ded5982
Add a "Random" button
Wieku Jun 16, 2022
45dcfa3
Default to 40% length of the song if preview time is < 0
Wieku Jun 16, 2022
4f74c61
Preview selected maps
Wieku Jun 16, 2022
73ff936
Add an option to disable auto-preview
Wieku Jun 16, 2022
13e70b0
Fix progress bar disappearing when recording is finished
Wieku Jun 16, 2022
7d911fb
Ask to exit danser if recording is in progress
Wieku Jun 16, 2022
7c269b1
Fix PreviewSelected controlling preview button instead of difficulty one
Wieku Jun 16, 2022
c12f765
Print ffmpeg location
Wieku Jun 18, 2022
97c839d
Migrate api.txt to credentials.json
Wieku Jun 19, 2022
80bdd00
Add api v1 to config editor
Wieku Jun 19, 2022
eda5b08
Use json paths as ids
Wieku Jun 19, 2022
6f6b024
Change main editor layout to table instead of sameline with additiona…
Wieku Jun 19, 2022
41f6836
Push font a bit later
Wieku Jun 19, 2022
68dc569
Fix sub section title line
Wieku Jun 19, 2022
f827075
Don't space subsections as much
Wieku Jun 19, 2022
bb19344
Remove "##" from json path in tooltips
Wieku Jun 19, 2022
320dbfa
Add closing the popup by Escape key
Wieku Jun 19, 2022
b9050f3
Align text to buttons/sliders/etc
Wieku Jun 19, 2022
27048f9
Change editor search bar to rectangle and without border
Wieku Jun 19, 2022
2661492
Change editor navigation style
Wieku Jun 19, 2022
f9a9f94
Add OsuReplaysDir
Wieku Jun 19, 2022
731a87b
Change "Osu ** dir" to "osu! ** directory"
Wieku Jun 19, 2022
8ae77c3
Clear replay if mode is changed from Replay
Wieku Jun 19, 2022
06a0c01
Scroll to already selected item in combo on open
Wieku Jun 19, 2022
a8a38e6
Move search box from config editor and song select to widgets
Wieku Jun 19, 2022
337d72d
Add search to config and skin lists
Wieku Jun 20, 2022
5614e1a
Block search when slider is hovered to prevent left/right click movin…
Wieku Jun 20, 2022
6367a71
Show "Done in x"
Wieku Jun 20, 2022
91ad42e
Fix followpoint not considering skin's Framerate
Wieku Jun 20, 2022
ecc0a91
Add "Load latest replay on startup" option
Wieku Jun 20, 2022
6a4f4c7
Add jsonPath to ids in combo boxes
Wieku Jun 20, 2022
b5a6ce3
Temporary fix to audio being off-sync on Windows
Wieku Jun 21, 2022
6ab3d8d
Add basic "Audio offset" option in Time menu
Wieku Jun 22, 2022
ea093fc
Add localOffset to database
Wieku Jun 22, 2022
4ed7254
Save local offset to database
Wieku Jun 22, 2022
9c17b35
Add "knockout2" flag that loads replays from JSON list of paths inste…
Wieku Jun 23, 2022
e6030d2
Remove "Expected PP" from replay info in logs
Wieku Jun 23, 2022
fb59781
Complain prematurely if replay misses input data
Wieku Jun 23, 2022
c80f5c8
Fix launcher crash when loading bad replay
Wieku Jun 24, 2022
859b1f0
Add new knockout mode to launcher
Wieku Jun 24, 2022
d4f7b9a
Make MaxPlayers and ExcludeMods apply only to classic knockout
Wieku Jun 24, 2022
5518052
Save a bit of memory by getting rid of input and lifebar data
Wieku Jun 24, 2022
11483ce
Update dialog package
Wieku Jun 24, 2022
1a0aa92
Update dialog package yet again
Wieku Jun 24, 2022
52d32b3
Fix message a bit
Wieku Jun 24, 2022
802f829
Add beatmap set page button
Wieku Jun 24, 2022
fa8789d
Fix loading replays by drag&drop/argument/LoadLatestReplay not working
Wieku Jun 24, 2022
5eeed17
Load the latest usable replay
Wieku Jun 24, 2022
9636178
Update README.md
Wieku Jun 24, 2022
244b0bb
Fix danser breaking with unicode arguments on Windows
Wieku Jun 24, 2022
848cf08
Fix Mods.AdditionalSpacing ranges
Wieku Jun 24, 2022
165d279
Add GPU RGB->YUV converter/subsampler, 3x speedup on mobile Intel 8250u
Wieku Jun 25, 2022
9ff7a29
Convert to nv12/nv21/i422 on another thread
Wieku Jun 25, 2022
f9f948e
Don't spinwait for free PBO
Wieku Jun 25, 2022
7373619
Reduce superfluous threading
Wieku Jun 25, 2022
ab8aeab
Switch pboPool to channel
Wieku Jun 25, 2022
8727c1d
Force nv12 while using qsv encoders
Wieku Jun 25, 2022
3535679
Hide pixel format if qsv is used
Wieku Jun 25, 2022
ee5ee56
Add helper functions for imgui vectors, fixes a lot of "Fields are as…
Wieku Jun 25, 2022
f9ca324
Change and comment some icons
Wieku Jun 26, 2022
99191ea
Hide speed/shift sliders depending on TrailStyle
Wieku Jun 26, 2022
25df939
Raise TrailEndScale and GlowEndScale limit, hide TrailGlowOffset if i…
Wieku Jun 26, 2022
2f75a07
Remove numbers from TrailStyle
Wieku Jun 26, 2022
6c12c5c
More updates to cursor
Wieku Jun 26, 2022
1858f37
Update Object settings tags
Wieku Jun 26, 2022
ff98b7c
Fix vector tooltips having hash characters
Wieku Jun 26, 2022
06fab44
Raise the max width of tooltip window
Wieku Jun 26, 2022
c2699b2
Fix showing parent of danser's directory if dir option is empty
Wieku Jun 26, 2022
d7cb395
Fix search trying to show results of dynamically hidden items
Wieku Jun 27, 2022
c1b3d2b
Fix removing array items on section edges not making next section be …
Wieku Jun 27, 2022
b148c57
Add an option to change preview volume
Wieku Jun 27, 2022
d587058
Fix preview volume slider size
Wieku Jun 27, 2022
3ea86b6
Don't write stuff to console when new element to array is being added
Wieku Jun 27, 2022
04e1f64
Use rounded corners
Wieku Jun 27, 2022
33a0ff8
Simplify ffmpeg audio code
Wieku Jun 27, 2022
07622bb
Fix video glitching out on some PCs
Wieku Jun 27, 2022
562f906
Add "s" suffix to screenshot time
Wieku Jun 27, 2022
905a785
Fix layout blinking when showing hidden options
Wieku Jun 27, 2022
c0390d0
Raise momentum limits
Wieku Jun 27, 2022
fb1126a
Fix 0 byte audio files being ignored
Wieku Jun 27, 2022
2fb866c
Separate Balance to Balance and BalanceChan
Wieku Jun 28, 2022
b217360
Update database every 1k calculated maps
Wieku Jun 28, 2022
4678696
Update database every 1k imported maps
Wieku Jun 28, 2022
271578f
Always load "storyboard" samples, regardless of LoadStoryboards settings
Wieku Jun 29, 2022
8d71ceb
Always try to load storyboard to potentially load samples, run the st…
Wieku Jun 29, 2022
58e5f17
Don't play or stop skipped samples
Wieku Jun 29, 2022
5159a17
Fix videos and samples not being loaded from subdirectories
Wieku Jun 29, 2022
028b673
Allow FLAC in mp4
Wieku Jun 29, 2022
c1f8983
Panic if combine fails
Wieku Jun 29, 2022
d1ef251
Show some of ffmpeg errors in panic message
Wieku Jun 29, 2022
6e9ac2d
Add per audio codec options
Wieku Jun 29, 2022
8a17da0
Still show bubbles
Wieku Jun 29, 2022
67f99c9
Danser is a player
Wieku Jun 29, 2022
242e8a0
Merge pull request #242 from PercyDan54/minplayer
Wieku Jun 29, 2022
bad2685
Update knockout settings
Wieku Jun 29, 2022
91b15e6
Save configs on launcher exit
Wieku Jun 29, 2022
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
6 changes: 5 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,15 @@
/settings/
settings.json
settings-*
danser.db
*.db
danser
danser-launcher
danser*.exe
danser*.zip
danser.log
launcher.log
assets.dpak
danser-core.*
libdanser*
api.txt
*.osr
38 changes: 28 additions & 10 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,8 @@ As danser is in development phase, some things may break. If that happens please

You can download the newest Windows/Linux 64-bit binaries from [releases](https://github.com/Wieku/danser-go/releases).

After unpacking it to your desired directory, you need to run it using a command-line application/terminal:
After unpacking it to your desired directory, you need to run it using launcher (using `danser-launcher` executable) or
a command-line application/terminal:

##### Windows cmd:
```bash
Expand All @@ -39,7 +40,7 @@ danser <arguments>
./danser <arguments>
```

If you try to run Danser without any arguments there's a surprise waiting for you ;)
If you try to run *danser* (not *danser-launcher*) without any arguments there's a surprise waiting for you ;)

## Run arguments
* `-artist="NOMA"` or `-a="NOMA"`
Expand All @@ -51,25 +52,33 @@ If you try to run Danser without any arguments there's a surprise waiting for yo
* `-cursors=2` - number of cursors used in mirror collage
* `-tag=2` - number of cursors in TAG mode
* `-speed=1.5` - music speed. Value of 1.5 is equal to osu!'s DoubleTime mod.
* `-pitch=1.5` - music pitch. Value of 1.5 is equal to osu!'s Nightcore pitch. To recreate osu!'s Nightcore mod, use with speed 1.5
* `-pitch=1.5` - music pitch. Value of 1.5 is equal to osu!'s Nightcore pitch. To recreate osu!'s Nightcore mod, use
with speed 1.5
* `-settings=name` - settings filename - for example `settings/name.json` instead of `settings/default.json`
* `-debug` - shows additional info when running Danser, overrides `Graphics.DrawFPS` setting
* `-play` - play through the map in osu!standard mode
* `-skip` - skips map's intro like in osu!
* `-start=20.5` - start the map at a given time (in seconds)
* `-end=30.5` - end the map at the given time (in seconds)
* `-knockout` - knockout mode
* `-record` - Records danser's output to a video file. Needs a globally accessible [ffmpeg](https://ffmpeg.org/download.html) installation.
* `-out=abcd` - overrides `-record` flag, records to a given filename instead of auto-generating it. Extension of the file is set in settings. When the `-ss` flag is used, this sets the output filename as well.
* `-replay="path_to_replay.osr"` or `-r="path_to_replay.osr"` - plays a given replay file. Be sure to replace `\` with `\\` or `/`. Overrides all map selection arguments
* `-mods=HDHR` - displays the map with given mods. This argument is ignored when `-replay` is used
* `-knockout2="[\"replay1.osr\",\"replay2.osr\"]"` - knockout mode, but instead of using danser's replays folder,
sources replays from the given JSON array. `Knockout.MaxPlayers` and `Knockout.ExcludeMods` settings are ignored.
* `-record` - Records danser's output to a video file. Needs an
accessible [FFmpeg](https://github.com/Wieku/danser-go/wiki/FFmpeg) installation.
* `-out=abcd` - overrides `-record` flag, records to a given filename instead of auto-generating it. Extension of the
file is set in settings. When the `-ss` flag is used, this sets the output filename as well.
* `-replay="path_to_replay.osr"` or `-r="path_to_replay.osr"` - plays a given replay file. Be sure to replace `\`
with `\\` or `/`. Overrides all map selection arguments
* `-mods=HDHR` - displays the map with given mods. This argument is ignored when `-replay` is used. `-mods=AT` will
trigger cursordance with replay UI.
* `-skin` - overrides `Skin.CurrentSkin` in settings
* `-cs`, `-ar`, `-od`, `-hp` - overrides maps' difficulty settings (values outside of osu!'s normal limits accepted)
* `-nodbcheck` - skips updating the database with new, changed or deleted maps
* `-noupdatecheck` - skips checking GitHub for a newer version of danser
* `-ss=20.5` - creates a screenshot at the given time in .png format
* `-quickstart` - skips intro (`-skip` flag), sets `LeadInTime` and `LeadInHold` to 0.
* `-offset=20` - local audio offset in ms, applies to recordings unlike `Audio.Offset`. Inverted compared to stable.
* `-preciseprogress` - prints record progress in 1% increments.

Since danser 0.4.0b artist, creator, difficulty names and titles don't have to exactly match the `.osu` file.

Expand All @@ -85,6 +94,8 @@ Examples which should give the same result:
<executable> -t="ain pow" -difficulty="rdrive" -tag=2

<executable> -md5=59f3708114c73b2334ad18f31ef49046 -tag=2

<executable> -id=933228 -tag=2
```

Settings and knockout usage are detailed in the [wiki](https://github.com/Wieku/danser-go/wiki).
Expand All @@ -94,29 +105,36 @@ You need to clone it or download as a .zip (and unpack it to desired directory)

#### Prerequisites

* [64-bit go (1.17 at least)](https://golang.org/dl/)
* gcc (Linux/Unix), [mingw-w64](http://mingw-w64.org/) or [WinLibs](http://winlibs.com/) (Windows, TDM-GCC won't work)
* [64-bit go (1.18 at least)](https://golang.org/dl/)
* gcc (Linux/Unix), [WinLibs](http://winlibs.com/) (Windows, TDM-GCC won't work, mingw-w64 is outdated)
* OpenGL library (shipped with drivers)
* xorg-dev (Linux)
* libgtk-3 and libgtk-3-dev (Linux)

#### Building and running the project

First, enter the cloned/downloaded repository.

When you're running it for the first time or if you made any changes type:

```bash
go build
```

This will automatically download and build needed dependencies.

Afterwards type:

```bash
./danser-go <arguments>
```

Running without arguments (as opposed in [Running Danser](#running-danser)) will give you the launcher, though you can't
use drag&drop on the executable to preload a replay. If that ability is desired, build danser using dist scripts.

## Credits

Software created by Sebastian Krajewski ([@Wieku](https://github.com/ppy)) and [contributors](https://github.com/Wieku/danser-go/graphs/contributors)
Software created by Sebastian Krajewski ([@Wieku](https://github.com/ppy))
and [contributors](https://github.com/Wieku/danser-go/graphs/contributors)

Full credits can be found [here](CREDITS.md).
Loading