Skip to content

feat: Switch to osu-native pp calculator#524

Draft
cyperdark wants to merge 18 commits intomasterfrom
feat/pp-modules
Draft

feat: Switch to osu-native pp calculator#524
cyperdark wants to merge 18 commits intomasterfrom
feat/pp-modules

Conversation

@cyperdark
Copy link
Copy Markdown
Collaborator

@cyperdark cyperdark commented Jan 12, 2026

  • cleanup
  • cleanup again
  • testing
  • fix converted beatmaps
  • add support for mod settings
  • get ar, od, hp, cs from somewhere
  • fix whatever is this
image

other notes from gabu:

@cyperdark cyperdark changed the title feat: soon feat: Abstract class for calculator & Allow using local pp counter module Jan 12, 2026
@cyperdark cyperdark closed this Jan 31, 2026
@cyperdark cyperdark reopened this Jan 31, 2026
@cyperdark cyperdark changed the title feat: Abstract class for calculator & Allow using local pp counter module feat: Switch to osu-native pp calculator & Allow Switching calculator versions Jan 31, 2026
@cyperdark cyperdark marked this pull request as ready for review January 31, 2026 15:25
@cyperdark cyperdark marked this pull request as draft January 31, 2026 15:33
@cyperdark cyperdark changed the title feat: Switch to osu-native pp calculator & Allow Switching calculator versions feat: Switch to osu-native pp calculator Feb 24, 2026
@cyperdark cyperdark linked an issue Feb 24, 2026 that may be closed by this pull request
@GabuTheDev
Copy link
Copy Markdown
Member

GabuTheDev commented Feb 26, 2026

I've done a test on the current state (cfe81e9)

1. tosu crashes on lazer replay rewind

not always though, small rewinds seem fine sometimes? big rewinds clearly crash the program.
there might be something else crashing it, like maybe mid-calc rewind or something, idk.

Exit code 3221225477 (which is 0xC0000005 in hexadecimal) is a Windows-specific error indicating an Access Violation. This occurs when a process attempts to read or write to a memory address it does not have permission to access.

Command failed with exit code 3221225477

Screenshot 2026-02-26 195307

2. pp is unfortunately off

On both clients, it never overshoot. The values were always under the actual pp value.

stable: Differences are not that big, they're certainly better than lazer's.
lazer: it seems like on lazer, besides the problem that is probably also present on stable, the pp value is heavily influenced by sliders.

Bm huis tosu stable Diff stable tosu lazer Diff lazer Notes
# 324.713 306.69 -18.02 314.75 -9.96 none
# 3015.862 3010.11 -5.75 834.09 -2181.77 none
# 5512.123 5500.23 -11.89 264.69 -5247.43 none
# 910.676 910.68 0.00 910.68 0.00 sliders=0

Diff was calc as such: tosu_pp - rounded(huis_pp, 2 decimal)

3. Beatmap is sometimes accessed before initialization.

it only errors once, then magically works after that.
Cannot read properties of undefined (reading 'Beatmap')
Screenshot 2026-02-26 211417

4. The default intro song is no longer skipped.

also I am not sure if it's supposed to be the same value at all accuracies.....

Screenshot 2026-02-26 211755

5. pp is updated on 2nd note, instead of 1st.

see video:

Screenshot.2026-02-26.212213.mp4

@cyperdark
Copy link
Copy Markdown
Collaborator Author

  1. fixed

@cyperdark
Copy link
Copy Markdown
Collaborator Author

cyperdark commented Feb 27, 2026

  1. fixed (probably

@cyperdark
Copy link
Copy Markdown
Collaborator Author

  1. lazer doesnt say it's a intro music or not
image

@GabuTheDev
Copy link
Copy Markdown
Member

lazer doesnt say it's a intro music or not

is there no beatmap id? can we not hardcode skip by beatmap id?

@GabuTheDev GabuTheDev added area:server The nodejs backend of tosu. breaking labels Feb 27, 2026
@cyperdark
Copy link
Copy Markdown
Collaborator Author

  1. fixed also re:fixed 1.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area:server The nodejs backend of tosu. breaking

Projects

None yet

Development

Successfully merging this pull request may close these issues.

performance points calcs are off by ~5 units and sometimes drops.

3 participants