3. Skip to content

3. File Search Paths

There are four possible search paths, in order of which is searched first:

Name Path Requirement
deliver Y:\maimai_deliver\maimai\ Delivery is enabled, up to date, and valid
extend W:\maimai\ W:\EXTEND_VER.txt is present and contains 1.97
extend2 V:\maimai\ V:\EXTEND_VER2.txt is present and contains 1.97
base Current working directory (X:\maimai\) Always used

The following is list of different search paths and which folders will be searched:

Files matching deliver extend extend2 base
data/acro/* Yes Yes
data/filters/* Yes
data/font/* Yes
data/movie/*.wmv Yes Yes Yes Yes
data/score/* Yes Yes
data/shader/* Yes
data/sound/* Yes
data/surfboard/* Yes
data/surfboard_EN/* Yes
data/tables/* Yes Yes
data/whiteboard/* Yes Yes
data/whiteboard2/* Yes Yes
data/whiteboard3/* Yes Yes
data/visualizer/%s.mvc Yes Yes
data/visualizer/%s.mmmf Yes Yes
data/visualizer/%s.spc Yes Yes
data/sprite/course_banner/event_%03d.dds Yes Yes Yes
data/sprite/course_banner_mini/event_%03d_mini.dds Yes Yes Yes
data/sprite/event_banner/event_%03d.dds Yes Yes Yes
data/sprite/event_banner_mini/event_%03d_mini.dds Yes Yes Yes
data/sprite/event_banner/present_event_%03d.dds Yes Yes Yes
data/sprite/event_banner_mini/present_event_%03d_mini.dds Yes Yes Yes
data/sprite/tips/%s.dds Yes Yes Yes
data/sprite/movie_thumbnail/%s_mmt_%s.dds Yes Yes
data/sprite/movie_selector/%s_mms_%s.dds Yes Yes
data/sprite/movie_selector_mini/%s_mms_%s.dds Yes Yes
data/sprite/collection_frame/frame%04d_%s.dds Yes Yes
data/sprite/collection_frame_mini/frame%04d_%s.dds Yes Yes
data/sprite/collection_icon/icon%04d_%s.dds Yes Yes
data/sprite/collection_deka_icon/icon%04d_%s.dds Yes Yes
data/sprite/collection_nameplate/namep%04d_%s.dds Yes Yes
data/sprite/* for other sprites Yes Yes
data/* for other files and misc folders Yes
W:/EXTEND_VER.txt3 Yes
V:/EXTEND_VER2.txt3 Yes
* for other files, such as SystemConfig and EXEs Yes

3.1 Observations

While charts can be pushed via delivery, pushing new music to the game requires an OTA update.

This is unfortunately also the case regarding surfboard files.

3.2 Details regarding lookup functions in the game

3.2.1 ExtendDataManager::locateFileWithExtend

Search paths:

  • deliver1
  • base
  • extend2
  • extend22

Used by:

  • L"data/movie/%s.wmv"

3.2.2 ExtendDataManager::locateFile

Search paths:

  • deliver1
  • base

Used by:

  • Visualizers
    • L"data/visualizer/%s.mvc"
    • L"data/visualizer/%s.mmmf"
    • L"data/visualizer/%s.spc"
    • All files referenced by such, eg data/acro
  • Score files (data/score/*)
  • Table files (data/tables/*)
  • Whiteboards (data/whiteboard*/*)

3.2.3 findFileInDeliveryOrRelative()

  • data/tables/*
  • data/sprite/* (if not account for elsewhere)

3.2.4 searchForFileIn3(base, extend, extend2)

  • L"data/sprite/course_banner/event_%03d.dds"
  • L"data/sprite/course_banner_mini/event_%03d_mini.dds"
  • L"data/sprite/event_banner/event_%03d.dds"
  • L"data/sprite/event_banner_mini/event_%03d_mini.dds"
  • L"data/sprite/event_banner/present_event_%03d.dds"
  • L"data/sprite/event_banner_mini/present_event_%03d_mini.dds"
  • L"data/sprite/tips/%s.dds"

3.2.5 searchForFileIn3(base, deliver, invalid)

  • L"data/sprite/movie_thumbnail/%s_mmt_%s.dds"
  • L"data/sprite/movie_selector/%s._mms_%s.dds"
  • L"data/sprite/movie_selector_mini/%s._mms_%s.dds"
  • L"data/sprite/collection_frame/frame%04d_%s.dds"
  • L"data/sprite/collection_frame_mini/frame%04d_%s.dds"
  • L"data/sprite/collection_icon/icon%04d_%s.dds"
  • L"data/sprite/collection_deka_icon/icon%04d_%s.dds"
  • L"data/sprite/collection_nameplate/namep%04d_%s.dds"

3.2.6 searchForFileIn3(extend, invalid, invalid)

  • L"W:/EXTEND_VER.txt"3

3.2.7 searchForFileIn3(extend2, invalid, invalid)

  • L"V:/EXTEND2_VER.txt"3

  1. Disabled when delivery is not enabled and valid 

  2. Disabled if the respective extend partition failed to load 

  3. These searches always fail due to the drive letter being prefixed, forming an invalid path.