Submission #5371: ruadath's DS Fire Emblem: Shadow Dragon in 08:47.83

(Link to video)
Nintendo DS
baseline
DeSmuME git#cf8f021 x86
31578
59.82609828808082
8591
Unknown
3398 - Fire Emblem - Shadow Dragon (US)(Micronauts)
Submitted by ruadath on 1/23/2017 9:32:42 AM
Submission Comments
This run completes Fire Emblem: Shadow Dragon in 8:47.47 on H1 Difficulty, roughly 3 minutes and 15 seconds faster than Vykan12's previous TAS of Normal Mode. Due to the ability to skip enemy phases and acquire an infinite-range warp staff very early on in the game, it’s possible to beat Shadow Dragon dramatically faster than any other Fire Emblem game in the series.

Game Objectives

(Note: for the moment the majority of these comments are taken from Vykan12's TAS page with edits to reflect differences in my run. I'm not really sure what the rules are about this on the site, so I can rewrite the page from scratch if you guys want, but otherwise I'm not really sure it's worth the effort since the original submission explains the game pretty well)
  • Emulator used: DeSMuMe_git#cf8f021_x86 (the movie will actually sync up perfectly well on 0.9.11x86, however the first 30 or so frames must be played on a relatively recent git revision of DeSMuMe so that the game can be loaded with the correct RNG seed; the desired seed is generated by a date in December, and all official releases of DeSMuMe have a bug in the date time parser which prevents it from reading such dates http://forums.desmume.org/viewtopic.php?id=10640. Let me know if this is an issue and if I should provide a save state or something after the RNG has been loaded)
  • Aims for lowest frame count (as opposed to lowest turn count)
  • Sacrifices playable characters to save time

Differences From Other Fire Emblem Games

Since Shadow Dragon is a remake of FE1/3, the gameplay mechanics unfortunately got dumbed down in a variety of ways. To name a few:
  • No rescuing
  • No shoves/smites
  • No skills
  • No supports
  • No dancer
  • Dodging enemy attacks is very unreliable (based on how hit & avoid are calculated)
The lack of rescuing is especially painful because it means the most efficient way to beat a map before the existence of the warp staff is ALWAYS to move Marth as far towards the throne as possible, with every other character basically being inconsequential. As long as Marth has strong enough stats to clear the enemies he faces, he can solo maps with ease.
The warp staff is also quite different from the other games in the series in that it shows up remarkably early (chapter 3 of a 27 chapter-long game) and has infinite range. In contrast, the warp staves in FE6-8 have range bound by the warper’s mag stat divided by 2, and the warp staff doesn’t even exist in FE9-10. In fact, the only game that has a warp staff remotely as broken as Shadow Dragon is Thracia 776 (FE5).
Putting these factors together, the basic strategy for the TAS boils down as follows:
  • Chapter 1 to Chapter 3: Marth solo with some minor assistance from Jagen
  • Chapter 4 base: Forge Marth an overpowered rapier forge that will one-hit KO just about every boss in the game (since most bosses are armors/generals, in which case the rapier does 3x as much damage as its weapon might)
  • Chapter 4 onwards: Lena or Boah warps Marth next to the boss, wait a turn, Marth kills the boss on enemy phase, seizes next player phase

RNG

The RNG is found at addresses 02196E08 to 02196E0B (credit to Nitrodon). Unlike previous games, cursor movement does NOT affect the RNG, although dialogue between characters does. Also, setting the DS’ internal game clock affects the beginning RNG seed. The initial value of the RNG is given by the number of seconds since the nearest century (i.e. the number of seconds since Jan. 01 12:00:00 A.M.), and subsequent random numbers are generated by applying a (Boolean) pseudolinear transformation to the current RNG state. (I have a script that can be used along with the game to show what is going on here, not sure where to submit it though)
To manipulate the RNG, I choose a DS clock time of “December 26, 2073, 20:07:40” since I found that this seed would allow Marth to survive a headfirst rush against the enemies in Chapter 1 and gain nearly perfect levels to allow him to start soloing from Chapter 2 and saving time by not requiring me to use Jagen beyond Chapter 1. I'm sure a better RNG seed can be found; in particular, Marth levels up on a player phase during the first chapter which wastes somewhere between 3-5 seconds of time, but I couldn't find a reasonable workaround to it, and thus seed was the best I could find given reasonable time constraints.
In the previous TAS, the main method of manipulating RNs was to visit villages and view dialogue. While this technique is still used in certain areas of this playthrough, it is faster in most cases to perform a critical attack on a player phase, since the critical animation burns 2 random numbers every frame, and can be interrupted at any point by pressing start. This in particular gives a special use to the character Caeda since she has a weapon with +10 crit (just as Marth does), and therefore has a 13% chance to land a crit at any point in the game. When it is necessary to manipulate the RNG, it is usually not too hard to rearrange the important action to allow Caeda a chance to crit something.

Sacrificing Characters

Shadow Dragon has this oddity whereby even the death quote of a fallen ally is skipped if you skip enemy phase, meaning you lose absolutely no time by letting non-essential characters die. So unlike other games, it’s generally better to leave vulnerable characters in danger than to move them into safety.
This does present its own complication, however. Namely, you want to optimize who does and doesn’t die because it affects the unit slot order in your army, and therefore the starting position of your characters on each map.

Clone Glitch

In Chapter 17 and 20 you’ll see what appears to be Lena or Boah warping an empty slot, only to have Marth appear on that very space. Basically when you warp a character and skip the warp animation quickly enough, an invisible clone of the character you just warped remains on that square. Now if you attempt to warp that invisible clone, the original character will be sent to the location that the clone is being warped to.

Chapter-by-Chapter Comments

Note: Some chapters are so straightforward that I’ll forego commenting about them.

Chapter 1

Marth visits the village, as this gives him the necessary funds to make the overpowered rapier forge in Chapter 4. Jagen leads the charge into the enemy units, since with his Silver Lance, he weakens enemies enough so that Marth can kill them with one hit. I spend one more turn than necessary to complete the chapter in order to let a thief suicide on Marth for additional EXP and a good level, which ensures that Marth is strong enough to ORKO all of the generic enemies in the next chapter (and beyond).

Chapter 2

Ogma gives Marth a Steel Sword so that he has enough Mt to kill all of the enemies in a single round of combat.

Chapter 3

Draug moves up to protect Lena from the horde of enemies to the north.

Chapter 4

As mentioned earlier, I forge Marth a +8 Mt rapier forge. This gives the rapier a total might of 13, meaning Marth does 39 + (his str stat) – (boss def) damage to bosses that are armors/generals or cavaliers/paladins, which is basically always a one-hit KO.

Chapter 5

The warp staff isn’t used here because I have to conserve warp usage until the next warp staff appears in Chapter 12, and this happens to be the shortest chapter that can be beaten without it.

Chapter 6

The scene in which Marth gets the Fire Emblem appears to be unskippable.

Chapter 9

Caeda crits a pirate before I seize in order to burn RNs so that Marth can crit kill the boss in the next chapter with his Silver Sword

Chapter 11

You can’t really see it, but Marth uses a speedwing that he acquired from the Chapter 10 boss before he gets warped.

Chapter 12

Sedgar and Barst team up to kill a thief carrying the next Warp staff, then Lena pulls it out of the convoy and uses it to warp Marth to his destination. Boah moves to a position that ensures he can't be killed by enemy units.

Chapter 13

Boah trades with Lena for the warp staff, rest is straightforward. Note that Astram drops a wyrmslayer on enemy phase even though you can’t see it.

Chapter 14

Lena is undeployed in order to move Boah into a more favorable starting position in subsequent chapters.

Chapter 15

Caeda attacks the mage at the end of the map in order to manipulate the RNG for Marth to crit kill the boss in the next chapter.

Chapter 17

The clone glitch is utilized here to have Marth grab the third (and final) warp staff from a chest before going to the boss.

Chapter 18

Marth uses a Dracoshield and Caeda visits a village to manipulate Marth’s level-ups and subsequent chapters' RNG. I drop the Speedwing because it isn't necessary; Marth caps speed regardless.

Chapter 20

The clone glitch is again utilized to warp Marth to the Hammerne village before sending him to the boss. I deselect three units at the start of the chapter in order to ensure Lena and Boah start near Marth in the next chapter (where the party is split into several groups). This technique will be used again in Chapter 24x.

Chapter 21

Lena repairs Marth's Rapier with the Hammerne staff before Boah warps him to the boss.

Chapter 22

Lena repairs the Warp staff.

Chapter 24x

Jagen moves into a position where he gets killed in order to burn random numbers for the crit on the final boss

Endgame

Marth has an 8% chance to land the critical hit to kill the boss in one hit. Nagi has a 9% crit chance, but her animation takes longer (I think) and requires Marth to crit kill the first dragon as well.

Noxxa: Replaced movie file with a version verified to sync on DeSmuME 0.9.11, and judging.
Noxxa: Very solid improvement to its predecessor. The improvements in luck manipulation (and actions as a result) help it keep the pace up quite a bit better. Accepting to Moons as an improvement to the published movie.
fsvgm777: Processing.
Last Edited by adelikat on 10/20/2023 12:52 AM
Page History Latest diff List referrers