User:GGAB3/Sandbox: Difference between revisions

From DivaDocs
GGAB3 (talk | contribs)
No edit summary
GGAB3 (talk | contribs)
No edit summary
Line 36: Line 36:
{| class="wikitable"
{| class="wikitable"
|+
|+
!Keywords and derived keywords
! colspan="4" |Keywords and derived keywords
!
!
!
!Valid values
!Valid values
!Requirement level
!Requirement level
!Description
!Description
|-
|-
|bpm
| colspan="4" |
|
====== bpm ======
|
|
|any number
|any number
|'''Critical''', omitting this command or leaving its value empty will cause the PV to not appear in the Song Select screen.
|'''Critical''', omitting this command or leaving its value empty will cause the PV to not appear in the Song Select screen.
|BPM of the song. Not directly used in MM+, but required for loading the PV.
|BPM of the song. Not directly used in MM+, but required for loading the PV.
|-
|-
|chainslide_failure_name
| colspan="4" |
|
====== chainslide_failure_name ======
|
|
|
|
|
|
|
|
|-
|-
|chainslide_first_name
| colspan="4" |
|
====== chainslide_first_name ======
|
|
|
|
|
|
|
|
|-
|-
|chainslide_sub_name
| colspan="4" |
|
====== chainslide_sub_name ======
|
|
|
|
|
|
|
|
|-
|-
|chainslide_success_name
| colspan="4" |
|
====== chainslide_success_name ======
|
|
|
|
|
|
|
|
|-
|-
|date
| colspan="4" |
|
====== date ======
|
|
|any number representing a date formatted like <code>yyyymmdd</code>
|any number representing a date formatted like <code>yyyymmdd</code>
|'''Critical''', omitting this command or leaving its value empty will cause the PV to not appear in the Song Select screen.
|'''Critical''', omitting this command or leaving its value empty will cause the PV to not appear in the Song Select screen.
|Date of the song's addition to the game. Not directly used in MM+, but required for loading the PV.
|Date of the song's addition to the game. Not directly used in MM+, but required for loading the PV.
|-
|-
| rowspan="9" |difficulty
| rowspan="9" |
====== difficulty ======
| rowspan="2" |attribute
| rowspan="2" |attribute
| colspan="2" |original
| colspan="2" |original

Revision as of 10:23, 12 October 2025

Project DIVA games store general information about the PVs in a database file called pv_db.txt, located in the rom folder. The data inside is stored in plain text, meaning the file can be opened and edited using any text editor, such as Notepad.

For the later games (Project DIVA F2nd and Project DIVA X) the pv_db file is encrypted using DIVAFILE encryption. They need to be decrypted before editing.

Multiple pv_db databases can not be loaded sequentially. Instead, only the contents of the last loaded pv_db file gets parsed by the game, overwriting the entire base game pv_db.txt database as a result.

pv_db databases can have a prefix in their file name to indicate a specific use case:

  • mdata_pv_db - Primarily used in Project DIVA Arcade Future Tone's MDATA system. It is also seen in games such as Project DIVA Mega Mix+, where it is used as the dlc pv_db.
  • mod_pv_db - Custom prefix read by DivaModLoader for Project DIVA Mega Mix+ mods. The contents of each mod_pv_db gets loaded sequentially, in the mod load order. Entries pointing to the same PV slot get overwritten in load order.

Structure

Similarly to other plain text databases in Project DIVA, proprieties/keywords are separated by . and values are attributed to certain proprieties using =. All lines in the database need to be written in lexicographical order (a → z, 0 → 9) in order to be parsed correctly by the game.

Each entry in a pv_db begins by specifying the PV slot to which we can attach a propriety and attribute a value, like this:

pv_###.propriety=value

pv_268.date=202001001 (pv_268 [Catch the Wave]'s date is 01 Jan 2020.)

Proprieties can also be chained or composed of lists:

pv_268.songinfo.lyrics=kz

pv_268.songinfo.music=kz

chained properties
pv_268.lyric.001=Catch the wave君と

pv_268.lyric.002=掴む音で pv_268.lyric.003=まだまだ歌おう pv_268.lyric.004=Wave your handsもっと

list properties

List of valid pv_db keywords

All the keywords that can be used in pv_db are defined in the game's internal systems. Here is a table with all the keywords that can be used after pv_###.:

Keywords and derived keywords Valid values Requirement level Description
bpm
any number Critical, omitting this command or leaving its value empty will cause the PV to not appear in the Song Select screen. BPM of the song. Not directly used in MM+, but required for loading the PV.
chainslide_failure_name
chainslide_first_name
chainslide_sub_name
chainslide_success_name
date
any number representing a date formatted like yyyymmdd Critical, omitting this command or leaving its value empty will cause the PV to not appear in the Song Select screen. Date of the song's addition to the game. Not directly used in MM+, but required for loading the PV.
difficulty
attribute original
slide
easy

normal

hard

extreme

encore

[list item] edition
level
level_sort_index
script_file_name
script_format
version
length
disp2d set_name
ex_song [list item] chara
file
length
eyes_xrot_adjust
hidden_timing
high_speed_rate
lyric

lyric_en

[lyric number]

(3 digits, including leading 0's)

motion

motion2P

motion3P

motion4P

motion5P

motion6P

[motion number]

(2 digits, including leading 0)

pack
performer [list item] chara
pv_costume
size
type
num
pv_expression file_name
rank_board_id
sabi play_time
start_time
se_name
slide_name
slidertouch_name
song_file_name
song_name
song_name_en
song_name_reading
songinfo

songinfo_en

arranger
illustrator
lyrics
music
sudden_timing