.MSD - Shintensu/Nippon GitHub Wiki

BASIC STRUCTURE

A dialogue session will always begin with

{DialogStart}

on it's own line, followed by the information that the game reads to determine what should happen during the dialogue session.

Likewise, dialogues always end with

{DialogEnd}

on it's own line, followed by an empty line before the next dialogue entry. Different dialogues seem to be distinguished by the game solely on their order in the MSD file, so be careful not to delete any dialogue entirely or add dialogue entries.

At points where the game is waiting for the player to act in order to progress the dialogue, the tag

{waitpad}

will appear. {DialogEnd} is almost always preceded by {waitpad} since the game does not want a dialogue session to end without the player acting first so the player can read the entire dialogue box before continuing.

If a dialogue session will require multiple dialog boxes to get through, each separate dialog box except for the last will be bookended by the pair of tags:

{waitpad}{clear}

followed by a blank line. {waitpad} of course causes the game to wait for player input before continuing with the dialogue, and {clear} tells the game to wipe the dialog box to make room for the next line in the dialogue.

GENERAL TAGS

{DialogStart} is often followed on the next line by a tag in the form:

{0x####}

where # represents some alphanumeric character. These tags likely control things like the camera, or character expressions. For example:

{0x8303}

denotes that the following lines are "informational" and not spoken by any particular character. The text on signs will be preceded by this tag, and narration of game-relevant actions like giving or receiving an item will be also preceded by this tag. Examples:

{DialogStart}
{0x8303}  "To Shrine"{waitpad}
{DialogEnd}

{DialogStart}
{speaker1:hm41}
I want you to have this bead I
found around here in return.{waitpad}{0x8303}  {0x8e01}{0xd404})H You obtained: {red}Stray Bead{black}{waitpad}
{DialogEnd}

General tags can also appear in the middle of dialogue sessions. Tags do not require their own lines and are often strung together at the starts and ends of lines of text.

SPEAKER TAGS

Dialogues denote what character is speaking for the following lines via tags of the form

{speaker1:####}

where # represents some alphanumeric character, followed by a line break. These tag are often used in place of {clear} tags, it seems they serve the same purpose as {clear} with the added feature of dictating which character is speaking. For example,

{speaker1:em15}

denotes that the following lines will be said by Issun (interestingly, Issun has a couple different character codes that are used in different situations). Example:

{DialogStart}
{speaker1:em15}
{0xd201}You're sure all fired up, Ammy!{waitpad}{clear}

{0xd201}You really think that hard head of
yours is gonna bust the wall down?{waitpad}
{DialogEnd}

Notably using the {clear} tag does not override the {speaker1:####} tag, so if only one character speaks for the entire dialogue, {speaker1:####} needs only to be applied once at the start of the dialogue and not every line.

COLOR TAGS

When the game wants to highlight a particular word or phrase as important, the game will often color that word or phrase red by using the color tag

{red}

followed by the color tag

{black}

on the other end of the important information. These tags are often placed in the middle of lines of text as opposed to at the starts and ends of lines, as other tags usually are.

TEXT FITTING (or lack thereof)

Okami does not automatically wrap text to fit inside dialog boxes, so if a character is speaking a long line, a line break will be included in the middle of the line. This is simply denoted with a linebreak in the MSD file. If a line break is not included in the MSD file, the line may overflow out of the dialog box in game. Example:

{DialogStart}
{0x8303}  "Dojo"{waitpad}{speaker1:em15}
This is a rundown dojo operated by
some eccentric old man.{waitpad}
{DialogEnd}

It seems that dialog boxes never exceed two lines of text in them. Any more than two lines needs to be in a new dialog box.

USER RESPONSE

Here is an example of a dialog box that requires the user to pick one of two responses. Not sure how it works.

{DialogStart}
{0x8303}  {0xa601}Keep exploring Shinshu Field?
{0xa804} {0xffff}{0xffff}Sounds good.      {0xa804}.{0xffff}{0xffff}Maybe later.{waitpad}
{DialogEnd}

Original Author:

captaincarswellthorne