(Link to video)
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.

TASVideoAgent
They/Them
Moderator
Joined: 8/3/2004
Posts: 14879
Location: 127.0.0.1
This topic is for the purpose of discussing #5371: ruadath's DS Fire Emblem: Shadow Dragon in 08:47.83
Spikestuff
They/Them
Editor, Publisher, Expert player (2292)
Joined: 10/12/2011
Posts: 6337
Location: The land down under.
Yeah... okay... I'll attempt a sync and encode since 9.10 and 9.11 should be avoided... This is going to be interesting... Edit: Going to have to question the author. Did you verify that it actually syncs on 9.11 or to be exact on a different system using only the submission and the game or did you just verify on your own and think "job's done"?
WebNations/Sabih wrote:
+fsvgm777 never censoring anything.
Disables Comments and Ratings for the YouTube account. Something better for yourself and also others.
Active player (255)
Joined: 12/13/2016
Posts: 352
I just made an encode and am uploading to YouTube right now; there isn't any desync problem with this game on 0.9.10 or 0.9.11 I checked before I started making the movie. EDIT: I separately downloaded DeSMuMe (both versions), the ROM, and the submission onto a different laptop and it seemed to work fine. Not sure if this is sufficient? Also, considering that Vykan's movie, which was made on version 0.9.9 64bit syncs up with the git revision until frame ~30xxx (at which point a minor desync occurs), I have reason to believe that the game is reasonably compatible between different versions. Let me know if I screwed something up or how I can help though.
GoddessMaria
She/Her
Reviewer, Experienced player (848)
Joined: 5/29/2009
Posts: 514
Location: Hell...
Glad to see that this is finished, ruadath! Having watched the WIPs, I've been rather impressed to see Hard Mode finally done and so much more quickly than the current movie. I've been entertained for sure! Voting Yes!
Current projects: failing at life
Noxxa
They/Them
Moderator, Expert player (4139)
Joined: 8/14/2009
Posts: 4083
Location: The Netherlands
I get a desync 30 seconds into the movie. Marth engages a pirate and then dies, and game over. Tried with both 0.9.10 and 0.9.11, both 32-bit and 64-bit versions. Are you sure that the movie works on DeSmuME 0.9.10 or 0.9.11 out of the box?
http://www.youtube.com/Noxxa <dwangoAC> This is a TAS (...). Not suitable for all audiences. May cause undesirable side-effects. May contain emulator abuse. Emulator may be abusive. This product contains glitches known to the state of California to cause egg defects. <Masterjun> I'm just a guy arranging bits in a sequence which could potentially amuse other people looking at these bits <adelikat> In Oregon Trail, I sacrificed my own family to save time. In Star trek, I killed helpless comrades in escape pods to save time. Here, I kill my allies to save time. I think I need help.
Active player (255)
Joined: 12/13/2016
Posts: 352
Right so what is happening is that the date parser in each of those builds is not reading the December date properly and is loading the game at Jan 01 2009 12:00:00 A.M. instead of Dec 26 2073 8:07:40 P.M. You need to load the first some number of frames (not sure what the lowest is, 31 definitely works) on one of the recent git revisions that fixes the parser so that the emulator loads the correct datetime/RNG. Then if you save state there and run the rest of the movie on the official build (or just continue to run on the git revision) it should work. Is this a problem/is there any way for me to fix this?
Noxxa
They/Them
Moderator, Expert player (4139)
Joined: 8/14/2009
Posts: 4083
Location: The Netherlands
ruadath wrote:
You need to load the first some number of frames (not sure what the lowest is, 31 definitely works) on one of the recent git revisions that fixes the parser so that the emulator imports the correct RNG. Then if you save state there and run the rest of the movie on the official build it should work.
This violates a few movie rules - one being that usage of interim versions is not allowed for the purpose of playing back a movie, and that a movie must not require interaction mid-run. Granted, it's an unfortunate situation where an emulation bug prevents playing back the game the way it should, but that doesn't mean we can start accepting arbitrary unofficial interim versions of emulators that have standard releases.
http://www.youtube.com/Noxxa <dwangoAC> This is a TAS (...). Not suitable for all audiences. May cause undesirable side-effects. May contain emulator abuse. Emulator may be abusive. This product contains glitches known to the state of California to cause egg defects. <Masterjun> I'm just a guy arranging bits in a sequence which could potentially amuse other people looking at these bits <adelikat> In Oregon Trail, I sacrificed my own family to save time. In Star trek, I killed helpless comrades in escape pods to save time. Here, I kill my allies to save time. I think I need help.
Active player (255)
Joined: 12/13/2016
Posts: 352
So should I cancel the submission then or what? The movie doesn't actually require interaction mid-run, you can run it from start to finish on (any of) the interim builds and it works. I just said that to show you that really the only thing going on here is the date time getting loaded in the first couple of frames. I figured this would a "special circumstance," since I imagine that if you run something like 5 or 10 frames (however long it takes for the emulator to load the date) that's all you need for the movie to sync on an official build.
Spikestuff
They/Them
Editor, Publisher, Expert player (2292)
Joined: 10/12/2011
Posts: 6337
Location: The land down under.
ruadath wrote:
you can run it from start to finish on (any of) the interim builds and it works.
Let me just quote what Moth wrote.
Mothrayas wrote:
This violates a few movie rules - one being that usage of interim versions is not allowed for the purpose of playing back a movie, and that a movie must not require interaction mid-run.
Restart your TAS with 0.9.9 as I mentioned earlier that the later versions should be avoided to desync issues. And that a Git version shouldn't be used at all.
WebNations/Sabih wrote:
+fsvgm777 never censoring anything.
Disables Comments and Ratings for the YouTube account. Something better for yourself and also others.
TASVideosGrue
They/Them
Joined: 10/1/2008
Posts: 2738
Location: The dark corners of the TASVideos server
om, nom, nom... blech, bitter!
Active player (255)
Joined: 12/13/2016
Posts: 352
For what it's worth, I'm not interested in rerunning the game. As far as I'm concerned, this is a perfectly legitimate run only prevented by a bug in the official release of the emulator, and if you guys are not willing to accept that then I guess it just won't get published until 0.9.12 is released (if ever).
Skilled player (1706)
Joined: 9/17/2009
Posts: 4952
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
Sorry for your lose loss. Hopefully, you don't quit TASing over this, despite the bad initial impression.
Noxxa
They/Them
Moderator, Expert player (4139)
Joined: 8/14/2009
Posts: 4083
Location: The Netherlands
I don't doubt that this particular run is legitimate. The problem is, as a whole, accepting unofficial git revisions opens up room for loopholes and makes it much harder to verify the legitimacy of a run. (Non-official releases could much more easily and subtly be hacked or patched to benefit a run in illegitimate ways - not saying that's the case here, but in general it wouldn't be easy to rule out). That is why, in the interest of structural integrity, we do not accept interim versions (except for special cases such as Dolphin where the interims are official and updates go through more scrutiny). Maintaining integrity and legitimacy is an important deal for TASVideos and its publication system. Once again, it's an unfortunate situation, and if the run synced on an official release (or does on a future 0.9.12 release) I would be glad to accept it, but as it is now, it asks to bend the rules too much to fit publication on the site.
http://www.youtube.com/Noxxa <dwangoAC> This is a TAS (...). Not suitable for all audiences. May cause undesirable side-effects. May contain emulator abuse. Emulator may be abusive. This product contains glitches known to the state of California to cause egg defects. <Masterjun> I'm just a guy arranging bits in a sequence which could potentially amuse other people looking at these bits <adelikat> In Oregon Trail, I sacrificed my own family to save time. In Star trek, I killed helpless comrades in escape pods to save time. Here, I kill my allies to save time. I think I need help.
Patashu
He/Him
Joined: 10/2/2005
Posts: 4016
Can this be added to Gruefood Delight? Thanks!
My Chiptune music, made in Famitracker: http://soundcloud.com/patashu My twitch. I stream mostly shmups & rhythm games http://twitch.tv/patashu My youtube, again shmups and rhythm games and misc stuff: http://youtube.com/user/patashu
Active player (255)
Joined: 12/13/2016
Posts: 352
Not sure who this question is addressed to, but if you're asking me, I'm certainly OK with it.
Patashu
He/Him
Joined: 10/2/2005
Posts: 4016
http://tasvideos.org/Movies/GruefoodDelight.html I think only editors can put TASes here. It would go under 'Technical Foul' for being completed on an unaccepted emulator. (Unrelatedly, I think this section is getting big and can be split. Maybe into 'emulation problems' vs 'does something cheaty'.)
My Chiptune music, made in Famitracker: http://soundcloud.com/patashu My twitch. I stream mostly shmups & rhythm games http://twitch.tv/patashu My youtube, again shmups and rhythm games and misc stuff: http://youtube.com/user/patashu
Active player (255)
Joined: 12/13/2016
Posts: 352
So actually I think this might end up being OK. I found a different datetime in November 2071 that replicates the entire RNG stream except for the first one... and a quick run through didn't have any desync until frame ~16000 (roughly halfway through the movie), which I think is just caused by the fact that the arrow drawing mechanism in the game is based off the RTC and not the RNG... so I might have a fix that works up soon! EDIT: Or maybe not, the desync might be more serious here than I thought... we will have to see...
Active player (255)
Joined: 12/13/2016
Posts: 352
OK, I have a movie that works now. I lost about 3 frames due to desyncs with the new clock seed, which I could probably get back by painstakingly searching for lags in the original run which were eliminated, but I'm too lazy to do that. Here is the submission.
Joined: 6/4/2009
Posts: 893
well if the judges accept the updated file, yes vote, if not, thanks for your efforts, it was a great run and a good improvement
Patashu
He/Him
Joined: 10/2/2005
Posts: 4016
Congrats on getting accepted to moons!
My Chiptune music, made in Famitracker: http://soundcloud.com/patashu My twitch. I stream mostly shmups & rhythm games http://twitch.tv/patashu My youtube, again shmups and rhythm games and misc stuff: http://youtube.com/user/patashu
Active player (255)
Joined: 12/13/2016
Posts: 352
Thank you, it was quite a surprise getting accepted to Moons immediately for my first TAS... hopefully I'll have just as good luck on those that follow!
Post subject: Movie published
TASVideoAgent
They/Them
Moderator
Joined: 8/3/2004
Posts: 14879
Location: 127.0.0.1
This movie has been published. The posts before this message apply to the submission, and posts after this message apply to the published movie. ---- [3321] DS Fire Emblem: Shadow Dragon by ruadath in 08:47.83