.osr ist ein Dateiformat mit Informationen über ein osu!-Replay. Für die Verwendung muss sich die zum Replay gehörende Beatmap im Ordner "Songs" befinden.
Name | Länge in Bytes | Beschreibung |
---|---|---|
Byte | 1 | Ein einzelner 8-Bit-Wert. |
Short | 2 | Ein 2-Byte-Wert im Little-Endian-Format. |
Integer | 4 | Ein 4-Byte-Wert im Little-Endian-Format. |
Long | 8 | Ein 8-Byte-Wert im Little-Endian-Format. |
ULEB128 | Variabel | Eine Ganzzahl mit variabler Länge. Siehe ULEB128. |
String | Variabel | Besteht aus drei Teilen. Ein einzelnes Byte, das entweder 0x0b (11 im Dezimalsystem) oder 0x00 ist. Bei einem Wert von 0x00 sind die anderen zwei Teile nicht vorhanden. Bei einem Wert von 0x0b sind die nächsten zwei Teile ein ULEB128, der die Länge des Strings in Bytes definiert, und der String selbst, kodiert in UTF-8. Siehe UTF-8. |
Byte-Offsets sind in dieser Tabelle nicht enthalten, da die Werte unterschiedlich lang sein können.
Datentyp | Beschreibung |
---|---|
Byte | Spielmodus des Replays (0 = osu!, 1 = osu!taiko, 2 = osu!catch, 3 = osu!mania) |
Integer | Version des Spiels, in der das Replay erstellt wurde (z. B. 20131216) |
String | MD5-Hash der osu!-Beatmap |
String | Spielername |
String | MD5-Hash des osu!-Replays (umfasst bestimmte Angaben des Replays) |
Short | Anzahl der 300er |
Short | Anzahl der 100er in osu!, 150er in osu!taiko, 100er in osu!catch, 100er in osu!mania |
Short | Anzahl der 50er in osu!, kleine Fruits in osu!catch, 50er in osu!mania |
Short | Anzahl der Gekis in osu!, Max 300er in osu!mania |
Short | Anzahl der Katus in osu!, 200er in osu!mania |
Short | Anzahl der Misses |
Integer | Gesamtpunktzahl (wird auf der Ergebnisanzeige dargestellt) |
Short | Höchste Combo (wird auf der Ergebnisanzeige dargestellt) |
Byte | Perfect/Full Combo (1 = keine Misses und keine Sliderbreaks sowie keine zu früh beendeten Slider) |
Integer | Verwendete Mods. Siehe unten für eine Liste der Modwerte. |
String | Lebensleiste: Komma-separierte Paare u/v, wobei u die Zeit in Millisekunden nach Beginn des Songs ist und v eine Gleitkommazahl zwischen 0 und 1 ist, die die Menge an übriggebliebenem Leben zu diesem Zeitpunkt darstellt (0 = Lebensleiste ist leer, 1 = Lebensleiste ist voll) |
Long | Zeitstempel (Windows Ticks) |
Integer | Länge in Bytes der komprimierten Replay-Daten |
Byte Array | Komprimierte Replay-Daten |
Long | Online-ID des Scores |
Double | Zusätzliche Mod-Informationen. Nur vorhanden, wenn Target Practice aktiviert ist. |
Zusätzliche Mod-Informationen:
Mod | Gespeicherte Informationen |
---|---|
Target Practice | Gesamtgenauigkeit aller Treffer. Dies durch die Anzahl an Objekten in der Beatmap zu teilen ergibt die Genauigkeit, die im Spiel angezeigt wird. |
Die restlichen Daten enthalten Informationen über die Mausbewegung und die gedrückten Tasten als LZMA-Kodierung.
In der dekomprimierten Form sind die Daten mit Kommas getrennt. Jeder Teil kennzeichnet eine Aktion, die von 4 Zahlen in der Form w | x | y | z
repräsentiert werden:
Teil | Datentyp | Beschreibung |
---|---|---|
w | Long | Zeit in Millisekunden seit der letzten Aktion |
x | Float | X-Koordinate des Cursors von 0 bis 512 |
y | Float | Y-Koordinate des Cursors von 0 bis 384 |
z | Integer | Die gedrückten Tasten auf der Tastatur und Maus als Bitfeld (M1 = 1, M2 = 2, K1 = 4, K2 = 8, Smoke = 16) |
Bei Replays, die in der Version 20130319
oder einer späteren erstellt wurden, wird für den Score eine zufällig generierte 32-Bit-Ganzzahl in einen zusätzlichen Replay-Frame am Ende des LZMA-Streams im Format -12345|0|0|Seed
hinzugefügt.
Dies wird auch in der Dokumentation der osu!-API beschrieben.
Mod | Wert (Bit-Offset) | Anmerkung |
---|---|---|
None | 0 | |
NoFail | 1 (0) | |
Easy | 2 (1) | |
TouchDevice | 4 (2) | Ersetzt die ungenutzte Mod "NoVideo" |
Hidden | 8 (3) | |
HardRock | 16 (4) | |
SuddenDeath | 32 (5) | |
DoubleTime | 64 (6) | |
Relax | 128 (7) | |
HalfTime | 256 (8) | |
Nightcore | 512 (9) | Immer mit DT in Verwendung: 512 + 64 = 576 |
Flashlight | 1024 (10) | |
Autoplay | 2048 (11) | |
SpunOut | 4096 (12) | |
Relax2 | 8192 (13) | Autopilot |
Perfect | 16384 (14) | |
Key4 | 32768 (15) | |
Key5 | 65536 (16) | |
Key6 | 131072 (17) | |
Key7 | 262144 (18) | |
Key8 | 524288 (19) | |
keyMod | 1015808 | k4+k5+k6+k7+k8 |
FadeIn | 1048576 (20) | |
Random | 2097152 (21) | |
LastMod | 4194304 (22) | Cinema |
TargetPractice | 8388608 (23) | nur osu!cuttingedge |
Key9 | 16777216 (24) | |
Coop | 33554432 (25) | |
Key1 | 67108864 (26) | |
Key3 | 134217728 (27) | |
Key2 | 268435456 (28) | |
ScoreV2 | 536870912 (29) | |
Mirror | 1073741824 (30) |