diff --git a/zenno/src/lib/all.ts b/zenno/src/lib/all.ts index ceb71a9..a4aedf5 100644 --- a/zenno/src/lib/all.ts +++ b/zenno/src/lib/all.ts @@ -74,6 +74,11 @@ export const PAGES = { description: "Interactive adaptation of KuromiAK's race mechanics documentation for easier visualization of how mechanics scale.", }, + { + route: resolve('/doc/mdb'), + name: 'Master Data', + description: "Notes on exploration of Umamusume's local database.", + }, { route: resolve('/doc/spark'), name: 'Spark Explorer', diff --git a/zenno/src/routes/doc/Mono.svelte b/zenno/src/routes/doc/Mono.svelte new file mode 100644 index 0000000..14b3f2b --- /dev/null +++ b/zenno/src/routes/doc/Mono.svelte @@ -0,0 +1,9 @@ + + + + {@render children?.()} + diff --git a/zenno/src/routes/doc/mdb/+page.svelte b/zenno/src/routes/doc/mdb/+page.svelte new file mode 100644 index 0000000..d710818 --- /dev/null +++ b/zenno/src/routes/doc/mdb/+page.svelte @@ -0,0 +1,257 @@ + + +
+ {#snippet head()} + Master Data +

+ This article is my personal notes on Umamusume's master data, a.k.a. master.mdb or just "the mdb." Most of the notes are + oriented toward my work on this website. It is an in-progress translation of my broader but more sparse notes + into a more agreeable, navigable, and consistent form. +

+

+ master.mdb is an SQLite database that the game downloads to your device. On Windows, you can find it at %USERPROFILE%\AppData\LocalLow\Cygames\Umamusume\master\master.mdb. Hakuraku has a + master data explorer that you can use + on the website. +

+

+ Generally speaking, I am only documenting what I feel is important, both in terms of tables and columns. That does + occasionally include documenting some things as being unimportant. +

+

+ Roughly speaking, master data contains all the numbers needed to display the game's user interface, including during races. + Skill data, support card effects, Grand Concert lesson definitions, and so on are in there. If trying to access some data + in-game shows a "Connecting..." indicator while it loads, it probably isn't in the mdb. Notably, this includes everything + related to career event outcomes. (Event information on sites like GameTora and GameWith are massive crowd-sourced efforts.) +

+

+ This document is oriented toward programmers with understanding of SQL databases. Mentions of Gallop:: are references + to types visible in decompilations of the game, but no C# knowledge is needed. +

+ {/snippet} + + text_data +

+ The text_data table contains most non-story strings in the game. Queries look up entries by category and + index, i.e. SELECT "text" FROM text_data WHERE category=? AND "index"=?. +

+

Some important categories:

+ +

+ Other categories are usually easy enough to figure out by inspection. Text data categories have proper names given in Gallop::MasterString.Category, but a few categories that have useful strings are missing from there. +

+ + Support cards +

+ Relevant text_data categories include 75 for name including variant, 76 for variant alone, 77 for character name. Category + 151 gives support card effect names, 154 gives effect descriptions, 150 gives unique effect names, and 155 gives unique effect descriptions. +

+

+ Queries should join with support_card_data inside. +

+ +

+ support_card_effect_table gives progressions of support card stats. There is one row per stat per support card. Unique + effects are not included. +

+ +

Unique effect data is in support_card_unique_effect.

+ +