-
-
Notifications
You must be signed in to change notification settings - Fork 4
Expand file tree
/
Copy pathnotes.txt
More file actions
206 lines (184 loc) · 6.62 KB
/
notes.txt
File metadata and controls
206 lines (184 loc) · 6.62 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
Hatsune Miku: Project DIVA Future Tone / Hatsune Miku: Project DIVA Mega Mix
Low-Level Notes and Documentation
Script File Breakdown
Script files have the extension .dsc and consist of 4-byte (32-bit) words. The
first word is some sort of header or unknown data. Everything past that is a
combination of opcodes and parameters. The opcode comes first, followed by the
number of parameters associated to it. An opcode overview is given below.
Opcode | Params | Name
--------+--------+--------
0x00 | 0 | END
0x01 | 1 | TIME
0x02 | 4 | MIKU_MOVE
0x03 | 2 | MIKU_ROT
0x04 | 2 | MIKU_DISP
0x05 | 2 | MIKU_SHADOW
0x06 | 7 | TARGET
0x07 | 4 | SET_MOTION
0x08 | 2 | SET_PLAYDATA
0x09 | 6 | EFFECT
0x0A | 2 | FADEIN_FIELD
0x0B | 1 | EFFECT_OFF
0x0C | 6 | SET_CAMERA
0x0D | 2 | DATA_CAMERA
0x0E | 1 | CHANGE_FIELD
0x0F | 1 | HIDE_FIELD
0x10 | 3 | MOVE_FIELD
0x11 | 2 | FADEOUT_FIELD
0x12 | 3 | EYE_ANIM
0x13 | 5 | MOUTH_ANIM
0x14 | 5 | HAND_ANIM
0x15 | 4 | LOOK_ANIM
0x16 | 4 | EXPRESSION
0x17 | 5 | LOOK_CAMERA
0x18 | 2 | LYRIC
0x19 | 0 | MUSIC_PLAY
0x1A | 2 | MODE_SELECT
0x1B | 4 | EDIT_MOTION
0x1C | 2 | BAR_TIME_SET
0x1D | 2 | SHADOWHEIGHT
0x1E | 1 | EDIT_FACE
0x1F | 21 | MOVE_CAMERA
0x20 | 0 | PV_END
0x21 | 3 | SHADOWPOS
0x22 | 2 | EDIT_LYRIC
0x23 | 5 | EDIT_TARGET
0x24 | 1 | EDIT_MOUTH
0x25 | 1 | SET_CHARA
0x26 | 7 | EDIT_MOVE
0x27 | 1 | EDIT_SHADOW
0x28 | 1 | EDIT_EYELID
0x29 | 2 | EDIT_EYE
0x2A | 1 | EDIT_ITEM
0x2B | 2 | EDIT_EFFECT
0x2C | 1 | EDIT_DISP
0x2D | 2 | EDIT_HAND_ANIM
0x2E | 3 | AIM
0x2F | 3 | HAND_ITEM
0x30 | 1 | EDIT_BLUSH
0x31 | 2 | NEAR_CLIP
0x32 | 2 | CLOTH_WET
0x33 | 3 | LIGHT_ROT
0x34 | 6 | SCENE_FADE
0x35 | 6 | TONE_TRANS
0x36 | 1 | SATURATE
0x37 | 1 | FADE_MODE
0x38 | 2 | AUTO_BLINK
0x39 | 3 | PARTS_DISP
0x3A | 1 | TARGET_FLYING_TIME
0x3B | 2 | CHARA_SIZE
0x3C | 2 | CHARA_HEIGHT_ADJUST
0x3D | 4 | ITEM_ANIM
0x3E | 4 | CHARA_POS_ADJUST
0x3F | 1 | SCENE_ROT
0x40 | 2 | MOT_SMOOTH
0x41 | 1 | PV_BRANCH_MODE
0x42 | 2 | DATA_CAMERA_START
0x43 | 1 | MOVIE_PLAY
0x44 | 1 | MOVIE_DISP
0x45 | 3 | WIND
0x46 | 3 | OSAGE_STEP
0x47 | 3 | OSAGE_MV_CCL
0x48 | 2 | CHARA_COLOR
0x49 | 1 | SE_EFFECT
0x4A | 9 | EDIT_MOVE_XYZ
0x4B | 3 | EDIT_EYELID_ANIM
0x4C | 2 | EDIT_INSTRUMENT_ITEM
0x4D | 4 | EDIT_MOTION_LOOP
0x4E | 2 | EDIT_EXPRESSION
0x4F | 3 | EDIT_EYE_ANIM
0x50 | 2 | EDIT_MOUTH_ANIM
0x51 | 24 | EDIT_CAMERA
0x52 | 1 | EDIT_MODE_SELECT
0x53 | 2 | PV_END_FADEOUT
0x54 | 1 | TARGET_FLAG
0x55 | 3 | ITEM_ANIM_ATTACH
0x56 | 1 | SHADOW_RANGE
0x57 | 3 | HAND_SCALE
0x58 | 4 | LIGHT_POS
0x59 | 1 | FACE_TYPE
0x5A | 2 | SHADOW_CAST
0x5B | 6 | EDIT_MOTION_F
0x5C | 3 | FOG
0x5D | 2 | BLOOM
0x5E | 3 | COLOR_COLLE
0x5F | 3 | DOF
0x60 | 4 | CHARA_ALPHA
0x61 | 1 | AOTO_CAP
0x62 | 1 | MAN_CAP
0x63 | 3 | TOON
0x64 | 3 | SHIMMER
0x65 | 4 | ITEM_ALPHA
0x66 | 2 | MOVIE_CUT_CHG
0x67 | 3 | CHARA_LIGHT
0x68 | 3 | STAGE_LIGHT
0x69 | 8 | AGEAGE_CTRL
0x6A | 2 | PSE
Script Opcode Details
This is a more detailed look at the functionality and parameters of script
opcodes. This section is incomplete.
0x00 - END
Indicates the end of script execution. No parameters.
0x01 - TIME
Pauses execution until a given timestamp is reached. Parameter 1 is the time
since starting execution to wait until, measured in 10^-5 seconds (100000 is
equal to 1 second).
0x06 - TARGET
Creates a new target/note for the player to hit. Notes timed simultaneously (no
TIME opcode between them) become multi-notes. Parameter 1 is the note type;
known types are listed below. Parameter 2 is the X-coordinate; horizontal
screen space seems to span 0 to 480000. Parameter 3 is the Y-coordinate;
vertical screen space seems to span 0 to 270000. Parameter 4 is the angle the
note flies in from, relative to its coordinates; it spans -180000 to 180000
clockwise, with 0 at the top. Parameter 5 is the distance the note travels while
flying; higher values mean faster travel to reach the destination in the same
time. Parameters 6 and 7 are related to note wobble when flying in.
Type | Name
------+------
0 | Triangle
1 | Circle
2 | Cross
3 | Square
4 | Triangle (held)
5 | Circle (held)
6 | Cross (held)
7 | Square (held)
12 | Left slider
13 | Right slider
15 | Left slider (held)
16 | Right slider (held)
18 | Triangle (event)
19 | Circle (event)
20 | Cross (event)
21 | Square (event)
0x18 - LYRIC
Sets a lyric from the song database to be displayed on-screen. Parameter 1 is
the lyric index; an index of 0 means no lyric will be shown. Parameter 2 is
unknown, and seems to always be set to -1.
0x19 - MUSIC_PLAY
Starts playback of the associated music file. No parameters.
0x1C - BAR_TIME_SET
Sets the time between when a target/note is created and when it should be hit.
Older charts tend to use this, while newer ones use TARGET_FLYING_TIME. Unlike
TARGET_FLYING_TIME, this uses a formula instead of a direct value. A value in
milliseconds is calculated as follows: (60 / BPM) * (BPB + 1) * 1000. Parameter
1 is the beats per minute (BPM). Parameter 2 is the beats per bar (BPB).
0x3A - TARGET_FLYING_TIME
Sets the time between when a target/note is created and when it should be hit.
Smaller values mean notes travel faster to reach their destination quicker.
Parameter 1 is the amount of time, measured in milliseconds.
Life Gauge
Based on observation alone, these are values that would make sense for the life
gauge. Its initial value is 127, with a max value of 255. The chart below shows
how much the value is adjusted based on note timing when hit. Wrong notes have
varying adjustments based on timing as well.
Time | Right | Wrong
------+-------+-------
Cool | +2 | -3
Fine | +1 | -6
Safe | 0 | -9
Sad | -10 | -15
Miss | -20 | -20
Other References
Source for opcode names and parameter counts: https://notabug.org/thatrandomlurker/Open-PD-Script-Editor
Detailed scoring information: https://w.atwiki.jp/projectdiva_ac/pages/128.html