I think I managed to understand how does P-notes works. That mapper used custom hold release note to signify the fake notes, so the impact is the mapper can't use any normal hold notes at all. Shall we start, then?
Let's start by analyzing this first:
192,192,NaN,128,0,101727:0:0:0:0:
Syntax for osu!mania holds should be like this:
x,y,time,7,hitSound,endTime:hitSample
P-notes achieved by abusing some arguments:
- Modifying time to NaN
- Modifying endTime to where the notes would appear instead
- Modifying type (in this case, 7) to 128.
Do note that the notes will appear using current skin's hold release, so it's not suitable for some skins. osu!topus will also fail on playing such maps since the LN start is not a number (NaN), confusing the auto-play system.
The result will be like this:
Of course, the impact of using P-notes are the score calculation will be erroneous due to missing notes (the P-notes) in calculation.
So, how do you do it, then? Suppose you want to put a P-note from normal note at this location...
64,192,13915,1,2,0:0:0:0:
What you need to do with this normal note is:
- Replace the time value (in this case, 13915) to NaN
- Replace the note type (in this case, 1 after the time argument) to 128
- Go all the way back to the first series of hitsounds argument (0:0:0:0:), add the value of time before the hitsounds argument
- Add colon symbol to separate it
- Profit!
The converted value will be like this:
64,192,NaN,128,2,13915:0:0:0:0: