Advanced Dungeons & Dragons: Heroes of the Lance (ntscus) (nes) [Any %] [Single Segment] [Deaths] [0:05:11]
Run Information
Completion Date June 18, 2019
State Obsolete
Tag Deaths
Verification Thread
Run Comments

I did this run on a Powerpak (my previous speedrun was done on the original cartridge, but I have since sold my copy of it). In case it matters for future reference, I used a ROM with checksum 4f46d1de7d0afba7c04361e499748382.

A note about the audio
I've recently started having problems with a loud buzzing sound from the console. At the title screen, you can hear the buzzing sound, then something snapping and then most of the buzz is gone. That was me jerking the cable (I obvoiusly didn't know it was before the attempt that ended up being my final run!). I've since found out that the buzzing sound was caused by interference with the second controller, so no more cable jerking should be needed from now on.

SDA history
19-Jun-2013 - 0:05:19 by ktwo (

I never thought I would play this game again after my previous speedrun. I had some amazing luck last time and it felt like the effort to beat the run would exceed what this game deserved. However, the game got some renewed attention recently and a 5.5 second routing improvement was found. As far as I know, credit should go to Vriaeliss for this. With such a huge and free time save, it wouldn't take a lot of effort to lower the time again and I decided to give it a go.

Game Mechanics
This is mostly going to be a copy-paste from my previous run comments. Since those aren't easily accessible any longer, I feel it's worth repeating them here (with some minor updates).
* All characters move at the same speed. A walking speed of one and a running speed of two. However, Raistlin (the cowled guy) can only walk. His jumps are at the speed of two though.
* There is a short animation when landing a jump, which costs one movement frame (= 2-3 actual frames) compared to simply running. Jumping often helps to faster get through certain enemies though.
* Damage taken when hit is random. Some enemies will always hit you. Some enemies will never hit you. Some enemies will sometimes hit you, but can sometimes be ran/jumped through. The RNG is an important factor in the latter case. Some enemy types are more of an obstacle than others, but even individual enemies can act in specific ways that are not characteristic of that type. For such a short game, it's no big problem though. One just has to learn the behavior of all the enemies along the path.
* Many enemies that normally hit you can be clipped through by bringing up the menu just before impact (I will refer to this as "menu clipping"). This is only useful when the menu has to be brought up anyways (bringing up the menu is always at least 1.5 s).
* When a character dies, the screen will flash black before putting the next character in front of the party. This costs ~0.7 seconds. By bringing up the menu "close" to when the character dies, you jump directly into the menu, saving those 0.7s compared to dying and then opening the menu normally. This trick is not consistent as the time window for it to work is anywhere from 0 frames (so not possible at all) to 10-15 frames. I'm not sure what determines the available time window and why it's many times not possible at all.
* In order to cast clerical spells, you need a hero with the blue crystal staff in the front row (one of the top four characters). Most of the spells are only available if it's Goldmoon holding the staff though. The only spell that's found any use in a speedrun is the "protection against evil" spell. It will be referred to as PAE from here on.
* In order to defeat the final dragon, you must have a hero with the blue crystal staff in front of the party (top left). Goldmoon starts with the staff, but three other characters can also wield it in case Goldmoon dies (but only after some slow dabbling in the menu, so not useful for a speedrun).

List of improvements
This run is 8 seconds faster than my previous run. Here is a quick rundown of the main differences with that run.
* Menu clipping through the enemy in room 2 of area 1. (0.5 secs)
* Not getting stuck on the first troll in area 2. (maybe 0.5 secs)
* New route in area 2 from 1:52-2:05. (5.5 secs)
* Worse luck at the end of area 2. (1.4 secs lost)
* Worse luck at the end of area 3. (1 sec lost)
* "No" execution mistakes. My previous run had a few slip-ups related to controller issues. (~1 sec)
* Much improved exit planning. The exits in the game are all over the place and each individual exit hit box needs to be memorized to know how early it can be activated. (1-1.5 secs?)
* Including attacks in the routing. (~0.5 secs)
* Just based on eyesight, I'm gonna say that my menuing was slightly better in the new run. (a few tenths of a second?)

Run comments
These comments will mainly discuss the general strats I use for clearing each room since not many resources exist for this game. I will also go more into detail about some of the things that have changed since the last run.

Area 1:
* Room 1 (-) - Obviously nothing to comment on...
* Room 2 (man) - Instead of switching Goldmoon to the back row as soon as entering this room, I used the opportunity to menu clip through the man, which saved a little over half a second. Menuing ok.
* Room 3 (bozak draconian) - About half of the time, the draconian will walk backwards and not allow running through, which is an instant reset. Other times you'll get through, but take damage costing a few tenths of second from the stun animation. I got the best outcome this time.
* Room 4 (bozak draconian) - Occasionally, this draconian will walk backwards and not allow running through, but much more seldom than the one in the previous room. You can also take a hit, like in the previous room, costing a few tenths. The enemy can also decide not to shoot (like in my previous run). That's an exception though. I got a good, but not the best, outcome.
* Room 5 (dwarf, bozak draconian) - Usually no problem here, but it's not too uncommon to lose a little time from taking damage when running through the enemy. No problem here though.
* Room 6 (-) -

Area 2:
* Room 1 (troll) - Running through the troll without taking damage is maybe a little less than a 50/50. In the last run I got stuck here a bit.
* Room 2 (baaz draconian, baaz draconian) - Sometimes the last guy spawns more to the right and blocks the exit. I think it only happens if you get stuck on any of the previous enemies in this area though. So possibly it runs on some timer, but I haven't investigated that further.
* Room 3 (wraith) -
* Room 4 (spectral) - This is where the new routing happens. Instead of going left, I went right. This is both slightly shorter and skips dealing with a dragon. The time save is roughly 5.5 seconds completely risk-free (it's actually easier than before).
* Room 5 (-) - By coming from the other side of the room, compared to the previous run, two enemies were skipped.
* Room 6 (bozak draconian) -
* Room 7 (man, spectral) - I take hits against the foes here and then jump through them. That's the best way I found in terms of speed, damage taken and consistency.
* Room 8 (fires) - In the previous run, I was exceptionally lucky and managed to skip two death animations (Sturm and Raistlin) by bringing up the menu perfectly. I didn't get that in this run and didn't even get the double-death of Sturm and Raistlin (to save one of the death animations). At least the latter happens pretty regularly, so definitely one of the more improveable points of the run. 1.5 secs could be saved here. The menuing looks a bit hesitant and improveable as well.
* Room 9 (baaz draconian, dragon) - Got slightly stuck on the baaz draconian, which normally doesn't happen. This room was slower than average, but I don't think much time was lost.
* Room 10 (-) -

Area 3:
* Room 1 (spider) - This spider is never a problem.
* Room 2 (dragon, dragon) - PAE and then just jump through the dragon. Menuing ok.
* Room 3 (spider) - This spider is never a problem either.
* Room 4 (troll) - Much better exit than in my previous run.
* Room 5 (wraith) - I stopped too early in my previous run and didn't end up in front of the exit. That was much better this time around.
* Room 6 (spider, man) -
* Room 7 (troll) - I slipped on the controller last time and came to a brief halt for a minor time loss (the controller setup is pretty dumb in this game - you need to press diagonal up to run, which causes quite a lot of finger fatigue). No problem this time though.
* Room 8 (-) -
* Room 9 (dragon) - PAE and then just jump through the dragon. Menuing ok.
* Room 10 (wraith, troll) -
* Room 11 (man, spider) - The best way to pass the man in this room is just to run straight through without jumping. The spider will always attack and block your passage if you try to run or jump through. My previous strat was to make a short pause just out of its attack reach and then run through when it calmed down. This time I attacked and ran through. While attacking is slow in this game, it still turned out to be faster than the previous waiting method.
* Room 12 (spider) - Back to the normal harmless spider.
* Room 13 (wraith, troll) - At this point, the health situation was pretty bad. You need to kill off the front guy (Caramon) before facing the final dragon (the alternative is a very costly menu trip). However, Caramon was somehow at full health, which is not often the case this late in the run. Normally my strat for the troll is to run into it and jump through. Just running through is usually a bit slower and drains a bit more energy. Since the energy aspect had priority, I used the slower method and managed to get rid of a chunk of health. Fortunately, Goldmoon (the hottie, next in line) didn't take damage at the same time. Finally, if you're too low on health at this point, attacking the troll once and then run through it has a pretty high success rate and incurs no loss of health, assuming the attack connects. Caramon's success rate seems to be a bit higher than Goldmoon's, but she can also pull it off relatively often. The same "attack and run through" also works on the two trolls in the next room.
* Room 14 (troll, troll) - Despite getting rid of a chunk of Caramon's health in the previous room, I still needed him to take quite a bit more damage against these two trolls. I employed the same method as in the previous room. Running through them with the aim to take off as much of his health as possible and eventually kill him off. It didn't quite work out, but was not too terrible either. Caramon managed to get through both trolls, which forced me to stick around and take one more hit before continuing. This led to a time loss compared to an ideal situation. However, getting the end game to work out is actually very tricky. While you can't tell from the size of the health bars, Goldmoon only has about half the health of Caramon. As a result, she will often die at the same time or right after Caramon dies. My previous run was exceptional in this respect and managed to keep Goldmoon's health high, while killing off Caramon without delaying. The result was a little over a second faster than in the new run. As far as I can remember, this is the only time I've had such an ideal situation though (including save state practice). Still, together with the time loss at the end of area 2, this is the most obvious part of the run that has room for improvement in my opinion.
* Room 15 (khisanth) - Pretty anticlimatic end boss, to say the least... Anyways, the menuing was ok at the end.

Final thoughts
Considering the amazing luck I had in my previous run at the end of area 2 and 3, my initial goal was a time around 5:14 (so my previous time minus the new time save). Ending up with a time of 5:11 was therefore a nice surprise. The time can definitely go lower yet, but I feel this is as much effort that I'm willing to put into it for now. I'm pretty happy with the execution. Most exits look good in my eyes and the menu trips were acceptable as well (maybe with one exception). Pushing the time lower will therefore mainly be about grinding out the RNG to get better results at the end of area 2 and 3.