Crash Cringle and teejusb
c3886adb07
Update Banner handling for new sorts
2025-03-03 23:36:06 -08:00
Crash Cringle and teejusb
b482c26612
Give these sorts sections so it's clear where they start and end
2025-03-03 23:36:06 -08:00
Crash Cringle and teejusb
6201e1ab94
Add Recently Played and Most Played per Profile as sorts
2025-03-03 23:36:06 -08:00
sukibaby and teejusb
6707922be8
Remove dead code from RageSoundReader_MP3.cpp
...
Unused.
2025-03-03 23:33:53 -08:00
3c0b480b93
Replace the vendored libjpeg with the submodule of libjpeg-turbo 3.1.0
...
Co-authored-by: phantom10111 <phantom10111@gmail.com >
2025-03-03 23:33:15 -08:00
sukibaby and teejusb
e1bf59458f
Check the ShowMouseCursor preference on Windows
...
Respect the user's setting in Preferences.ini. Hides the cursor if ShowMouseCursor is set to 0, shows the cursor if ShowMouseCursor is set to 1.
2025-03-03 23:28:13 -08:00
Rafał Florczak and teejusb
e0aad77672
Check for glu and udev in cmake
2025-03-03 23:26:54 -08:00
Crash Cringle and teejusb
b770e9ad6b
Use Log->Warn
2025-03-03 23:25:32 -08:00
Crash Cringle and teejusb
17e4953d54
Add Luadocs for Group
2025-03-03 23:25:32 -08:00
Crash Cringle and teejusb
dbbcc57112
Explicitly require and use capital NULL and ITG everywhere for sync bias, comment fix, nullptr check for group
2025-03-03 23:25:32 -08:00
Crash Cringle and teejusb
35570a0880
Condense trim/check empty pack.ini logic to vector looping
2025-03-03 23:25:32 -08:00
Crash Cringle and teejusb
8f6d5b44b9
Move sync offset application to song load (as early as possible)
2025-03-03 23:25:32 -08:00
Crash Cringle and teejusb
9d61cb4c06
Okay we use -9ms here because this counters the +9ms folks add to their charts. Ensure we clear the series map when freeing songs
2025-03-03 23:25:32 -08:00
Crash Cringle and teejusb
6fbbf931ac
Use std::string instead of RString for mappings
2025-03-03 23:25:32 -08:00
Crash Cringle and teejusb
218d5734a3
Change group map to an unordered_map
2025-03-03 23:25:32 -08:00
Crash Cringle and teejusb
830bf1bb8d
Change series map value from a vector to an unordered set, remove series prefixing, ensure always defaulting to group disk name for sorting
2025-03-03 23:25:32 -08:00
Crash Cringle and teejusb
dd60d36093
Implement changes from feedback
2025-03-03 23:25:32 -08:00
Crash Cringle and teejusb
694a724770
Move ASSERT_Ms to debugging and replace with warns, include <array>
...
(See feedback in PR)
Co-authored-by: sukibaby <163092272+sukibaby@users.noreply.github.com >
2025-03-03 23:25:32 -08:00
437f72b13d
Update src/ScreenOptionsMasterPrefs.cpp
...
Co-authored-by: sukibaby <163092272+sukibaby@users.noreply.github.com >
2025-03-03 23:25:32 -08:00
0b3ed6d4f9
Update src/SongManager.cpp
...
Co-authored-by: sukibaby <163092272+sukibaby@users.noreply.github.com >
2025-03-03 23:25:32 -08:00
fc98959db4
Update src/SongManager.cpp
...
Co-authored-by: sukibaby <163092272+sukibaby@users.noreply.github.com >
2025-03-03 23:25:32 -08:00
Crash Cringle and teejusb
ec814a6b74
Add version to Pack.ini, auto populate this value in the Pack.ini if it isn't manually provided
2025-03-03 23:25:32 -08:00
Crash Cringle and teejusb
48b5b35e23
Rewrite a few comments
2025-03-03 23:25:32 -08:00
Crash Cringle and teejusb
53a26f2fa4
Add some nullptr handling
2025-03-03 23:25:32 -08:00
Crash Cringle and teejusb
ac767b3ce8
Move GetGroup to SONGMAN, rename variables consistently, move "pack.ini" to constant var, flip sync bias sign
2025-03-03 23:25:32 -08:00
Crash Cringle and teejusb
ea588c8504
Remove extra fields for now
2025-03-03 23:25:32 -08:00
Crash Cringle and teejusb
e8f0d55d6e
Add SONGMAN:HasGroupIni(string groupName) which returns true/false
2025-03-03 23:25:32 -08:00
Crash Cringle and teejusb
05cd7ed922
reimplement "SyncBias" as something that tells us the sync of the pack so we may adjust accordingly rather than the blanket sync to apply to the pack.
2025-03-03 23:25:32 -08:00
Crash Cringle and teejusb
f59a5b1e72
Rename group.ini back to pack.ini to avoid conflict with the existing waiei standard.See: https://github.com/waiei/Group.ini-lua
2025-03-03 23:25:32 -08:00
Crash Cringle and teejusb
a7cb3b0264
Remove unnecessary GetSongs accessor from Group object
2025-03-03 23:25:32 -08:00
Crash Cringle and teejusb
13e6aaacb3
start addressing review/feedback
2025-03-03 23:25:32 -08:00
Crash Cringle and teejusb
00342feadc
Add new preference: DefaultGroupOffsetSeconds to dictate the default sync bias on the machine when no group.ini is present (or if there is no SyncOffset field in said file).
...
- Generally Supports either ITG (9ms) or NULL (0ms).
- Alternatively, one could edit the preference manually to put a different value
- Name/Description probably worth ironing out
2025-03-03 23:25:32 -08:00
Crash Cringle and teejusb
835ca35065
Ensure the Group Offset is applied when Reloading a Song from Disk
2025-03-03 23:25:32 -08:00
Crash Cringle and teejusb
fe1bfbdde2
Fix the AutoSync Relay showing Global Offset instead of the song Offset when Auto Syncing
...
- Unrelated to group.ini
2025-03-03 23:25:32 -08:00
Crash Cringle and teejusb
01eea5cd42
Remove additional leftover debug message
2025-03-03 23:25:32 -08:00
Crash Cringle and teejusb
1bf9dd004d
Use the Translit field from Group.ini, Migrate Banner code to Group class
2025-03-03 23:25:32 -08:00
Crash Cringle and teejusb
520173ef5d
Safe delete Groups
2025-03-03 23:25:32 -08:00
Crash Cringle and teejusb
c06059b274
Further Group enhancements.
...
- Adjust the variable scope of group attributes
- Remove the now redundant GroupBannerPaths vector and replace its usage.
- Migrate ini loading logic to Group class
- Better clarity on comments for Group
- Remove GetTotalSongs in favor of GetSongs.
- Add Year as a value to Group.ini
- Ensure new group and song maps are cleared properly when freeing songs
2025-03-03 23:25:32 -08:00
Crash Cringle and teejusb
096d3093e4
Add Group files to cmake
2025-03-03 23:25:32 -08:00
Crash Cringle and teejusb
5abaf5318a
Move group into its own class, add Credit and AuthorsNotes fields, Begin exposing methods to lua
2025-03-03 23:25:32 -08:00
Crash Cringle and teejusb
1aa44cacb6
Rename Pack -> Group for consistency. Remove leftover logging and extra lines from debugging.
...
Misc patches via PR review.
2025-03-03 23:25:32 -08:00
Crash Cringle and teejusb
e55475a295
Add enums for ITG/NULL in pack.ini for SyncOffset
2025-03-03 23:25:32 -08:00
Crash Cringle and teejusb
798201cce4
Add Pack Offset and Group Banners to pack.ini, Remove debug logging
2025-03-03 23:25:32 -08:00
Crash Cringle and teejusb
5e6f3378a8
Thrown together Initial working implementation of pack.ini
...
# Conflicts:
# src/MusicWheel.cpp
2025-03-03 23:25:32 -08:00
Michael Votaw and teejusb
239d38d5aa
pre-initialize size of vectors for writing nps/notes per measure to cache file.
2025-03-03 21:24:17 -08:00
Michael Votaw and teejusb
c0db6beb9c
We don't need to set cached nps per player individually, just parse all of it and pass it to Steps
2025-03-03 21:24:17 -08:00
Michael Votaw and teejusb
2625394ac0
Only store NotesPerMeasure and NpsPerMeasure values per-player if the steps type has different steps per player.
2025-03-03 21:24:17 -08:00
Michael Votaw and teejusb
fd790eb83e
Replace #MEASUREINFO with two separate tags, #NPSPERMEASURE and #NOTESPERMEASURE. Stop storing MeasureInfo objects on Steps, and just directly store NpsPerMeasure, NotesPerMeasure, and peakNPS.
2025-03-03 21:24:17 -08:00
sukibaby and teejusb
2414595063
do_mad_frame_decode might return 0, protect against possible crash
...
In the song wheel, if you scroll back and forth over an MP3 song very fast, you might get some audible corruption at the beginning of the song preview, and it might even crash the game.
This fixes both of those problems.
2025-03-02 22:21:30 -08:00
sukibaby and teejusb
6f497f70e7
Use SetPosition_hard instead of SetPosition_toc for the mp3 position, remove dependency on accurate sync boolean
...
Resolves #610 .
`RageSoundReader_MP3` has three different methods of setting the position. The default choice of `SetPosition_toc` is unable to provide an accurate result. The reason Edit Mode has such a severe desync when working with MP3's is due to the preference of using `SetPosition_toc`.
We can prevent this by using `SetPosition_hard` which works very well. Judging by comments in the file, it seems like `SetPosition_hard` was too resource intensive to use as the default method, 20+ years ago.
The only downside is, if you start from an arbitrary position (which is **only** possible in Edit Mode), you have a few milliseconds of corrupted audio, but then the sync is perfect. You can hear this in the demonstration video below.
When we start from the beginning of a file, such as playing a song, or using `Play whole song` in edit mode, `MADLIB_rewind` will be used.
`SetPosition_hard` provides an accurate result, and is consistent with the offset provided by `MADLIB_rewind`. The result is a consistent sync experience whether the MP3 is started from the beginning, or from an arbitrary position midway thru the file.
The `m_bAccurateSync` boolean dependency has been removed from SetPosition since it does not seem to provide any benefit on modern hardware. It seems fine to remove it so that we can call `MADLIB_rewind` or `SetPosition_hard` as fast as possible.
In my testing I never got `SetPosition_estimate` to be used, but I've left it in as a backup option.
2025-03-02 22:21:30 -08:00