◆ Creed's Mansion

HomeShining Force II › The witch and Mitula

Shining Force II — Is the Witch Mitula?

The woman at the end of the game, read out of both ROMs

The Shining Force II title screen witch: a hooded figure in a purple robe stirring a cauldron with a long crooked stick, two pouches at her belt.
The first person you meet. She names you, sets the difficulty, keeps your saves, and never says who she is.

The short version

Nothing in either ROM says the witch is Mitula. Her lines call her a spellcaster stuck in a magic forest; the Japanese script has her call herself an old hag. She and Mitula share no portrait, no sprite, no voice bleep and no music, and their names never cross.

One thing does connect them, and it was put there on purpose. The woman the witch turns into after the credits wears the Jewel of Light and the Jewel of Evil at her neck, the same two stones Mitula walks off with in the last story scene. The ending code draws those two jewels on a separate layer so that she can fade away and leave them behind, falling, until they land on the Fin screen. That is the whole case for the theory, and it is not a small one.

Where the question comes from

Start a new game and the first character on screen is a hooded witch at a cauldron. She asks your name, asks how hard you want the game to be, and from then on she is the save menu. Deep in the story you meet Mitula, the goddess who rules Tristan from a shrine in the mountains, and near the end she comes down to Arc Valley, takes both legendary jewels off your hands and goes to reseal Zeon.

Then you kiss the princess, the credits roll, and the witch is back. She thanks you for granting her wish, the screen goes white, and in her place stands a young woman with long blue hair who says you have let her return to her original form. Mitula also has blue hair. People have been asking whether the two are the same woman for thirty years, and the usual answer, on Shining Force Central and elsewhere, is a shrug: she does not look much like Mitula, and if she were Mitula she would be in two places at once.

I wanted a better answer than a shrug, so I went through the ROM. Both ROMs, in fact, because the Japanese script is not the same as the English one and this is exactly the sort of detail that gets flattened in translation.

Getting the text out

The dialogue in Shining Force II is not stored as readable text. Every string is Huffman-coded, and the coding uses a different tree depending on which symbol came before, so a plain search of the ROM for "Mitula" finds only the name in the enemy and ally name tables. The decoder at $02E13A in the US ROM reads the previous symbol, looks up a 16-bit offset in a table at $02E196, walks the tree at $02E394 plus that offset, and hands back one symbol. Seventeen banks of up to 255 strings follow from $02EB34; the pointer table to them sits at $041FDA and is itself pointed to from $028000.

That is enough to write a decoder, which I did in Python. The US ROM gives back 4267 strings. The Japanese ROM has the same decoder at $02D8EE, tables at $02D94A and $02DB48, banks from $02F83A, and 4298 strings. Its symbols are indexes into a kana and kanji font rather than ASCII, so I rendered the Japanese lines with the game's own glyphs, 32 bytes each from $028FCE, and read them off the screen. The SF2DISASM project documents the tree format and the US layout, which saved me a good deal of guessing; the Japanese offsets I found by searching that ROM for the decoder's own machine code.

What the witch says

Her opening lines, in English, are these. Text indexes are in hexadecimal.

00D8  Hee, hee, hee... You're finally here!
00D9  Ah, you look so confused. You don't know why you're here?
00DA  Yes, yes... I used a spell on you.
00DB  Ha, ha. Where are you going? You can't escape
00DC  from this mystery forest unless you help me.
00DD  Whatcha gonna do?

So she is not a fortune teller, whatever the crystal ball on her table suggests. There is a fortune teller in Granseal, a different NPC with her own lines, and her neighbour will tell you she is a liar. The witch is a caster who has pulled you into a forest with a spell and wants a favour. The "favour" is the menu: new game, continue, copy, delete.

The Japanese text is blunter about who she is.

Three lines of Japanese dialogue rendered with the game's font: the witch says you were summoned by this old woman's spell, that this is the forest where you lose your way, and that the only way home is to grant her wish.
Strings 00D8 to 00DA of the Japanese ROM, rendered with the ROM's own font.

"You were called here by this obaba's spell, hee hee." Obaba is how an old woman refers to herself when she is playing up her age: granny, old hag. "Even if you try to go home, this is the mayoi no mori, so there's no way back." The forest where you lose your way. "If you want to go home, you'll have to grant granny's wish." Her verbs and particles are an old woman's throughout: あんた, だよ, かね.

The music that plays under her has a name in the Japanese sound test, and the name is not Mitula's. The track list starts at string 01CC and runs in the same order as the sound test's own table of track numbers at $007FA4, a menu the US cartridge dropped. The second entry, hers, reads まよいのもりの まじょ: the Witch of the Forest of Wandering. The track the disassembly calls MUSIC_MITULA, which plays when the goddess shows up, is nineteen entries further down the list and is called ゆめ見るエリス, Dreaming Elis. Whoever named those tracks thought of the witch as a character in her own right, and thought of Mitula's theme as belonging to the sleeping princess.

Four Japanese sound-test track titles: Things that stir in the dark, Witch of the Forest of Wandering, Night deepens in the Forest of Wandering, Dreaming Elis.
Japanese track titles 01CC, 01CD, 01CE and 01E0. The witch owns two of them; Mitula's theme is named after Elis.

What the game says about Mitula

Forty-three English lines mention her by name, fifty-four in Japanese. Most are townspeople in Tristan. The ones that matter for this question come from the scene after Zalbard, when she appears in her own shrine and Astral asks what to do next.

0ADE  But, why? You're a goddess. You know our future, right?
0ADF  I'm not Volcanon. I never tell people the future,
      even if it could prevent death.
0AEE  Down to the surface. To save the people.

She lives in a shrine north of Tristan, not in a forest. She does not tell fortunes. She is not trapped anywhere; when she wants to leave, she dissolves and leaves. And a soldier in Granseal, late in the game, gives the one line about her that the theory leans on:

0DF6  Mitula looks young, but she is actually quite old.

In Japanese that line is longer, and a bit funnier: "Lady Mitula looks young, but they say she's been like that since forever! How old is she, really?"

Japanese string 0E15: Lady Mitula looks young but has been like that since long ago; how old could she be?
String 0E15 in the Japanese ROM.

That is a goddess who looks young and is old. The witch is a woman who looks old and, as it turns out, is young. The two lines do rhyme, and I suspect they were meant to. But a rhyme is all they are.

The order of the ending

The whole ending is triggered from one zone event in the map of Granseal Castle's first floor, in the zone-event block at $06329A, when you step up to the sleeping princess and answer yes. In order it runs the kiss cutscene, the credits, a short scene with Astral and the king under the piano theme, and then jumps to WitchEnd at $007094. That routine rebuilds the title-screen witch, gives her string 00EE, fades to white and calls EndGame at $0279D8, which loads a second full-screen picture and gives her string 00EF.

00EE  Finally, you've fulfilled my wish!
      Thanks to you, I can escape from this forest!
      Are you really that surprised?
00EF  {NAME}, I thank you. You enabled me to return to my original form.
      Someday we'll meet again. I'll never forget you....
The ending picture: a young woman with long wavy blue hair, in the witch's purple robe with a blue sash and a pouch at her hip, one hand raised to her chest, a blue and a red jewel hanging at her neck.
The picture EndGame loads from $1C6F2C. Same robe, same sash, same pouch, hood down.

Look at what she is wearing. It is the witch's robe with the hood pushed back. The blue sash is the witch's sash. The pouch at her hip is one of the two pouches on the witch's belt. Whatever "original form" means, the artist drew it as the same woman with the years taken off, not as somebody else stepping out of a costume.

The Japanese lines for the two screens make the same point with more words, and they do something the English does not.

Two Japanese strings: the hooded witch says you have finally granted her wish and she can leave the forest, fufufu, you look surprised; the young woman says thank you, I could return to my former self, surely we will meet again someday, I will not forget until then.
Strings 00EC and 00ED of the Japanese ROM. The underlines mark where the hero's name goes.

"At last you have granted this wish of mine. Thanks to you I can leave this forest. Fufufu... you are surprised, aren't you." And after the change: "Thank you, truly. Thanks to you I could go back to what I was. Surely, someday... we'll meet again, won't we? I won't forget you until then."

The thing to notice is the grammar. The hooded witch at the start of the game talks like a crone. The hooded witch after the credits, before she has changed shape, has already switched to the soft, polite, feminine register: のですね, できますわ. That is the register Mitula speaks in every time she appears: そうですわ, もらうわ, 行くわ. In Japanese fiction that switch is a standard way of telling the audience that the crone was a disguise. It is also how every adult woman of rank talks in this game, so it points at Mitula without naming her.

The jewels

Here is the part that made me rewrite my conclusion. In the last story scene, after Zeon is beaten, Mitula turns up in Arc Valley and the narration says:

0F2A  Mitula took the Jewel of Light from {LEADER}.
0F2C  Mitula took the Jewel of Evil.

The Japanese narration is more specific about the first one: ミトゥラ神は {NAME}の くびから 光のジュエルを はずした, "Mitula removed the Jewel of Light from {NAME}'s neck." The jewel had fused to Bowie's neck earlier in the game and she is the one who takes it off. Then she takes the other, says she must reseal Zeon before he recovers, tells everyone to run, and vanishes. She is the last person in the story to hold both stones.

Two Japanese strings: Mitula removed the Jewel of Light from the hero's neck; Mitula took the Jewel of Evil in hand.
Strings 0F49 and 0F4B of the Japanese ROM.

Now go back to the ending picture and look at her neck. A blue jewel on the left, a red jewel on the right. They are painted into the picture itself, and then EndGame draws them a second time. It writes four tile words, $2138 $2139 and $2142 $2143, into plane A at layout offsets $21E and $25E, which is a 16 by 16 pixel block at tile column 15, rows 8 and 9, exactly over the pendant. The palette bit on those words is set, so the copy on plane A uses palette 1 while the picture behind it uses palette 0. Both palettes hold the same colours, so on screen you cannot tell the copy is there.

The reason for the copy comes a few instructions later. After her line, the routine fades palette 0 to black, and only palette 0. The woman disappears; the two stones on plane A stay lit. Then it installs a vertical-blank handler that decrements the vertical scroll every frame, so the stones drift down the screen. Then it fades palette 1 as well, clears plane A, and loads the last picture: the same blue and red stones lying together in a pool of light, with Fin in the corner.

Three frames: the pendant at the woman's neck with a blue and a red jewel; the same two jewels alone on a black screen after she has faded out; the jewels lying together in golden light on the Fin picture.
What the code does with the jewels. They are drawn on their own layer so that she can fade out and leave them behind.
The final screen: the Jewel of Light and the Jewel of Evil resting in a glow of light on a black background, the word Fin written in script at the lower right.
The last picture in the game, from $1EF142.

Somebody planned that. It takes a second copy of the sprite, a second palette and a custom interrupt handler to make two 16-pixel stones fall off a woman who is no longer there. The point of the effort is to tell you that the woman had the jewels and that the jewels are what remains once she is gone. And the only character who had the jewels when the story stopped was Mitula.

Everything that keeps them apart

Against that stands the whole rest of the cartridge. I checked each of these in the US ROM; the Japanese one matches on every point I looked at.

The witch, and the woman she becomesMitula
NameNever named, in either languageNamed in 43 English and 54 Japanese lines
HomeA magic forest she cannot leaveA shrine in the mountains north of Tristan
ArtTwo full-screen pictures at $1C4E88 and $1C6F2CPortrait 36 at $1D2B9A, map sprite 215 at $FB018
Shared tilesNone between the ending picture and the portrait, checked tile by tile
FaceViolet eyes, no headdress, gold chain with the two stonesAmber eyes, gold circlet with a green gem, hoop earring
DressPurple robe, blue sashWhite gown, on portrait and sprite alike
Voice bleepBleep 4 in the hood, bleep 2 without itBleep 3
MusicTrack 10, "Witch of the Forest of Wandering"Track 14, "Dreaming Elis"
Farewell"Someday we'll meet again""Stay well, all of you" (Japanese); "Now, I must go. Good luck." (English)
Side by side: the head of the woman from the ending, with violet eyes and loose blue hair, and Mitula's dialogue portrait, with amber eyes, a gold circlet and a hoop earring.
The ending picture and portrait 36, both decoded from the US ROM. Blue hair is the only feature they share.
Mitula's overworld sprite facing down, sideways and up: long blue hair over a white gown.
Map sprite 215, three facings, two frames each. White gown, never a purple robe.

Two of those rows carry more weight than the others. Track 10 is also the music the game plays for Zeon's court in Arc Valley, for the Evil Spirit Shrine and for Devil's Head; it is the eerie theme, not a goddess theme. And the witch's ending voice is bleep 2, not Mitula's bleep 3, which would have been a one-byte way to wink at the player if anyone on the team had wanted to.

So, is she?

The ROM does not say, and I do not think it was meant to. What it does is stack the deck. A framing character who is old and turns out young, opposite a goddess who is young and turns out old. A crone who starts speaking like the goddess the moment the game is won. A woman who wears the two jewels the goddess carried off, and sheds them on her way out. None of that is proof. All of it is deliberate.

My reading is that the witch is the game's narrator, the person to whom the whole story has been told, and that the ending lets you decide whether the narrator was Mitula all along or simply an immortal of the same order. If you want her to be Mitula, the jewels are yours to point at, and they are a better argument than the hair. If you want her to be someone else, the cartridge will not contradict you either. It just will not help.

How this was done

The subjects are Shining Force II (USA), 2 097 152 bytes, MD5 6473b1505334ef5620d13191c18251fe, and Shining Force II: Koe no Fuuin (Japan), same size, MD5 3ba871d87f35feefcadfa9d4a2c06d13. Every address above is an offset into one of those files.

The text decoder follows the routine at $02E13A instruction by instruction: one Huffman tree per preceding symbol, leaf values stored backwards from the tree offset, a 1 bit for a leaf and a 0 bit for a node. The decoded US script matches the one in the SF2DISASM repository line for line, which is how I know the decoder is right. For the Japanese ROM I located the decoder by searching for the same machine code with the two lea displacements left as wildcards, and the font by scanning for runs of 32-byte blocks with the glyph header's shape.

The pictures use the game's "stack" compression: a bit stream of four-bit command groups, literal words assembled from a move-to-front history of sixteen nibbles, and back-references of up to eleven bits. My decoder reproduces the documented decompression of the SEGA logo byte for byte. Map sprites use the simpler word-level scheme with 10 08 04 01-style command bitmaps. Portraits are the stack scheme behind a small header of blink and mouth tiles. All of it is a few hundred lines of Python and a copy of the ROM, and the ending sequence was traced through the zone event block at $06329A, WitchEnd at $007094 and EndGame at $0279D8.

If you read the Japanese lines differently, or find a line I missed, tell me. There are 4298 of them and I read the ones that mention the witch, the forest, the jewels and the goddess.

Questions people actually ask

Does Shining Force 2 ever say that the witch is Mitula?

No. Neither ROM has a line that names the witch, or the woman she turns into, as Mitula. Her own lines make her a spellcaster trapped in a forest, and in Japanese she calls herself an old hag.

What is the strongest clue that the witch is Mitula?

The jewels. Mitula takes the Jewel of Light and the Jewel of Evil away with her in the last story scene. After the credits the woman is wearing a blue stone and a red stone, drawn on a separate layer so that they stay behind when she fades, fall down the screen and land on the Fin picture.

Is the ending different in the Japanese version?

Same sequence, different words. She calls herself obaba, names the place mayoi no mori, and after the change says she has gone back to what she was and hopes to meet you again. Her speech also shifts from a crone's register to the polite feminine one Mitula uses, before the transformation rather than after it.

Do the witch and Mitula share any graphics or sounds?

Nothing. Separate pictures, separate portrait and sprite, separate dialogue bleeps, separate tracks, and no shared tiles between the ending picture and Mitula's portrait.

Credits

The tree and picture formats are documented in SF2DISASM, the Shining Force Central disassembly of the US ROM; the labels WitchEnd, EndGame and MUSIC_MITULA are theirs. The question itself has been argued on the Shining Force Central forums for longer than this site has existed.