Tool-assisted game movies
When human skills are just not enough

Submission #6078: sugarfoot's Arcade Double Dragon in 06:10.56

Console: Arcade
Game name: Double Dragon
Game version: unknown
ROM filename: ddragonw.zip
Emulator: Mame-RR 0.139-v0.1 beta
Movie length: 06:10.56
FrameCount: 21287
Re-record count: 6308
Author's real name: Mark Floyd
Author's nickname: sugarfoot
Submitter: sugarfoot
Submitted at: 2018-08-24 07:13:07
Text last edited at: 2018-08-31 13:25:41
Text last edited by: fsvgm777
Download: Download (181460 bytes)
Status: published
Click to view the actual publication
Submission instructions
Discuss this submission (also rating / voting)
List all submissions by this submitter
List pages on this site that refer to this submission
View submission text history
Back to the submission list
Author's comments and explanations:
This run (5:57) is a 20 second improvement of the previous submission (6:17). First time I've ever broken the 6 minute mark! Huge gains in route optimization after lots of research, and better understanding of AI/Game mechanics

Speedrun Playtime based on time between Player is controllable, to the final kill shot on boss.

(Link to video)


  • Emulator used: Mame-RR 0.139-v0.1-beta
  • Difficulty: Easy


  • Lots of enemies thrown into cliffs, holes, ledges, you name it!
  • Intentional damage taken for positioning
  • Intentional Death to save time
  • Improved combo sequences
  • Lots more dynamite in Stage 4!
  • Intentionally hit trade to improve time

Link to previous submission (6:17 completion)

Special Acknowledgment

I would like to give a huge thank you to r57shell - without his help/patience explaining things to me, I never would have finished this video (My adventures trying to recreate stage 2 ledge glitch were my breaking point: =forum/p/473282#473282)

RAM Watch, Combos, etc

Please visit forum thread =forum/t/19968 - I maintain this thread for general speed run notes

Overview of Improvements Below!

Stage 1, Battle Sequence 1 (Black Roper, White Roper, White Williams)

Stronger grouping of enemies, simultaneous kills, saved 28 frames

Stage 1, Battle Sequence 2 (Linda, White Williams, Adobo)

Better use of knockdown time between emeies, stronger coordination of hits between enemies, this saves me ~40 frames

Stage 1, Battle Sequence 3 (Black Roper, White Williams, Bolo)

~100 frames saved. Discovered it's faster to not try and kill Black Roper and Bolo at same time. Instead I do damage on Bolo as soon as possible (first frame he's active on screen)

Stage 2, Battle Sequence 1 (White Williams, Black Williams, Roper)

50 frames saved using intentional death route, and manipulating AI to keep Black Williams stuck in place (game marks him as dead)

Stage 2, Battle Sequence 2 (Black Williams, White Roper)

Saved another 70 frames with an optimized route to throw White Roper on ledge. But I'm also losing a little time thanks to additional lag frames from all the enemies on screen

Stage 2, Battle Sequence 3 (Mix of Lindas, Ropers/Williams, Jeff)

How to get enemies to fall off ledge:

  • 100% guaranteed - works on All Enemies: (Y, Y_frac) < (FF, 00)
  • Roper/Williams: (Y, Y_frac) <= (FF, 40)... not 100% reliable, not familiar enough with Assembly code to understand the fall and fetch ground logic

Y position manipulation: I jam Lindas into corner to adjust their Y positions. I do this because otherwise, the Y values will never be below (FF, 00)

Why do you have to manipulate Y position? I do this to guarantee the final Y positions of the last 1 or 2 steps before enemies get to ledge are divisible by 2 (Y % 2 == 0). This is the only way to 100% guarantee Y will be equal to FE when get to ledge. The slight "bump" I give to Lindas by elevator changes their Y value to something that guarantees I'll get a Y value equal to FE.

If I don't manipulate Y positions, All direct paths to ledge (meaning mobs never walk back up towards elevator) always result in the same Y values once they get to the ledge. This leaves the Y positions for Lindas always greater than (FF, 00).

Stage 3, Battle Sequence 1 (White Williams, Black Roper x2, White Roper, Linda)

Discovered I don't have to walk all the way into corner to throw enemies off ledge.

Also do a better job optimizing battle of Black Roper and Linda.

70 frames saved

Stage 3, Battle Sequence 2 (White Roper, Williams x 3)

Huge savings gained by punching Williams immediately back into pit. This combined with better enemy route saves me almost 200 frames

Stage 3, Battle Sequence 3 (Bolo x 2, Williams x 2, Roper)

Use of punch instead of kick to knock Williams into pit.

Stage 3, Battle Sequence 4 (Williams, Roper, Adobo x 2)

Another 400 frames shaved off total time

I use the knife on Adobos instead of Roper - walking straight to end of stage to kick off battle ASAP.

Stage 3, Battle Sequence 5 (Jeff x 2, Roper)

No real change here

Stage 3, Boss Fight

Minor optimizations/cleanup save a few frames

Stage 4 - Double Bolos, Roper x 2, Williams

This was a first attempt at bundling all enemies together for kills. Lots of intentional damage here to keep my dynamite and knife throwers in place

Although the approach was highly optimized, it was only 1 frame faster overall (thanks to lag frames from all those enemies on screen)

Stage 4 - Boss Fight

200 Frames faster - discovered Willy can teleport glitch, and I take a straight path to edge of ledge

What's next? How fast can you make this????

There's "instant death" logic in the Assembly code for this game, but I'm not sure how many different places call this subroutine (still analyzing code). At the moment, I don't think it's related to anything except stage 4 gargoyle spears, and dynamite blast hitting 1P or 2P.. might not be too useful

Stage 4 group battle prior to boss fight. Definitely lots of improvements to be had there - ideal goal is to kill everything with two sticks of dynamite (much faster than knives, as it's 32HP of damage per hit vs 16HP of damage)

Stage 2 ledge falls may also be optimizable (Unfortunately my assembly knowledge isn't strong enough yet to figure this out).

feos: All I can say here is that I loved it. Accepting as an improvement to [3703] Arcade Double Dragon (World Set 1) "1 player" by sugarfoot in 06:44.34.

fsvgm777: Processing.

Similar submissions (by title and categories where applicable):