Submission Text Full Submission Page

Introduction

An absolute classic of the late 90's. I used to play this for hours against my siblings and friends, with some epic battles and nail-biting endings. I also had a lot of fun playing the single-player mode, featuring several modes: quick match against the CPU, and three campaign types: missions, skills training, and deathmatch.
This movie targets the missions campaign. It contains 33 missions, each with varying goals (e.g., kill AI worms, grab a weapon box, destroy weapon box) and difficulty. Beating a mission grants you access to the next one. You get a gold medal if you beat it in your first try. However, if you fail it, then some missions become easier (e.g., you get more weapons) but you can only get a silver or bronze medal. In some cases, it is faster to quickly fail a mission to get the silver/bronze handicaps. However, I personally dislike the idea of failing to get an easier path, so I decided early on to go for the "all golds" objective.
From the very beginning of this effort, the 2D Worms community helped and supported me greatly. Since this game allows you to create a new team and name the worms therein, I decided to give them the names of some of those community members, and then some of my favorite TASers (all of whom gave me permission to use their names). Unfortunately, the last two worms are never used in the missions, but nevertheless, this is an homage to them.
The game code, long abandoned by the original developers, has been given to Deadcode, a prolific community member with technical skills to maintain the code. Since then, he has implemented many quality of life improvements, including the ability of saving replays, and a TASing tool to create replays frame-by-frame.
I based my solutions GREATLY on well-established "round-time" community records. In the table you will see two categories: "Unassisted speedruns" and "Tool-Assisted speedruns". The former refers to replays from individual-level RTA records, and; the latter, refers to TAS-based replays. Naturally, the tool assisted times are faster than the RTA ones.
This movie places itself in the middle between the RTA and TAS records. The reason is that Deadcode's tool allows for precise 50fps inputs, including repeated actions that can't be replicated natively. Using Bizhawk+Win98, however, some frames are skipped for (probably) emulation reasons, where I cannot possibly get 50fps. I tried many configurations, but couldn't succeed. The image below shows the three approaches to speedrunning this game, and the current running times for each.
This effort took me many many many hours and re-records, with some moments where I didn't think it was even possible. Nevertheless, I ended up succeeding and even got three new TAS WR that improved even the TASes produced with Deadcode's tool!

Atlas Encode

The native encode suffers from some drawbacks: it's 1024x768, there are long loading times, there's screen tearing, and the camera sometimes misses the action (to follow the current worm actions). For somebody wanting to watch this in HQ, with full map view, and without any waiting, here's an encode.
I was able to do this by extracting the replays out of Bizhawk by exporting the HDD and opening it with 7z. I then took the replay files out of there and played them natively in my PC with a higher resolution, while recording it with OBS.

Acknowledgements

I'd like to thank the 2D worms speedrunning community for their encouragement, help and feedback. I wouldn't have been able to finish this without their help. Special shoutouts to: Mablak, RuffledBricks, TobyTrigger, Mr. Tophat, charles, korydex, Deadcode, FoxHound.

Software + Hardware

Emulator

  • EmuHawk 2.11.1 (Core: DOSBox-X)

ROM

Reproduction Steps:

  • 1) Make a .hdd image file with Windows 98 installed, according to the instructions in Bizhawk/DOSBox
  • 2) Download the Worms Armageddon Update 3.8.1
  • 3) Create an .ISO file with the patch within as the only file.
  • 4) Download the DOSBox configuration file I used to run the game.
  • 5) Download the installation XML file. Replace the paths as required
  • 6) Download the installation movie
  • 7) Load the XML file as ROM and run the installation movie. Export the hard disk at the end of the movie.
  • 8) Download the movie's XML file, replace the paths as required, and load it as ROM
  • 9) Download the submission movie and play it.

Q&A

Charles from the Worms 2D community asked me a series of questions. Maybe they will address some that may come from this community, so I'm including the Q&A here.
setup - if you'd like to use the original soundbank, pick the "English" soundbank, or figure out how to change locale/region to United Kingdom, instead of United States (latter will also affect the enemy)
Lol, had no idae
setup - Worms 7 and 8 never appear in any of the missions, you can get away with not naming them, unless you're doing that for entertainment/shoutouts
Yeah, these are just shoutouts to some of my favourite TASers
setup - if file manipulating is allowed before the TAS, you can modify the team file WG.WGT to customize the team beforehand OR make a new language file where you can override worm names on setup. there's even an external program for editing the team file. might save some frames idk
I didn't know this was possible, but still prefer to have them typed, as it is part of the shoutout. TASers nowadays don't care much non-gameplay lost frames, if it brings some entertaining/meaning
general - try to use fadeskips, hit ALT+F4 during the fadeout to black to exit out of the game earlier
I tried this. It ALT+F4 doesn't have an effect if you don't play windowed, which is not the idea of the TAS
#3 - have you considered the frame perfect variant of the RTA strategy? there is one for silver, and one for gold. unless your AI manipulations are faster
I haven't tried another strat. Maybe this could have resulted in an improvement
#5 - use Skip Go right after you collect the crate, this'll start the ending sequence quicker. this might apply for every mission where collecting a crate is the win condition
Shame I missed this one. I did apply it on one of the last missions, after RuffledBricks told me about it
#6 - brilliant rope knock there, also done with RB, so poetic :D
his sacrifice won't be forgotten :)
#7 - yea, girder placement... refer to the venn diagram
Yep
#11 - THE 1ST TURN MINE MANIP LMAO THAT'S A NEW ONE
I took this idea from the tool-assisted movie, so not my idea :P but here I demonstrate it is humanly possible :)
#13 - is there any chance of making Worm 2 stay alive while not being targeted by the Enemy, skipping one drowning animation?
I am pretty sure there is (I did spend a lot of time trying) but RNG manip is really REALLY hard. To have a single shot at a possible different outcome, sometimes I needed to re-do a very complicated section all over again
#14 - what's with the second explosion sound after the enemy dies?
Lol, I wondered the same back then! I have NO idea. I thought maybe the weapon box, but checked and it's still there. We will never know...
#18 - goofy cursor movement on that 1st napalm there, unless there's some actual explanation behind this. also +style points for surviving, RTA usually makes a draw here
Yeah, this one could have been faster (less goofy), but positioning the mouse exactly where needs to be isn't easy because I needed to account for the game scrolling. Also there some waiting to ensure the flame's RNG goes as required.
#25 - i remember Deadcode has made a nasty TAS involving skipping to end timing early, but this is framecount we're talking here, including stuff between inputs, including the next mission etc., so different timing rules, a different solution
I only seen his framecount-targetting solution, it was outlandishly well executed. I opted to go for RTA-friendly one, but I wasn't able to replicate the 3s+3s grenade solution, instead going for 3s+4s.
#26 - ayy, finally someone used a cow in this mission, nice :D
Moo!! (shame they didn't give you a 2+ herd, otherwise the mission could have ended one turn ealier)
#32 - what's with the halt on the 2nd turn there? rng manipulation? also consider using Scroll Lock + mouse movement to manually move the camera to action
the wait is pure RNG manip, so that the clusters go exactly up, pushing the worm to the other. Couldn't make this one work any earlier. The camera was an issue: if you try to correct it after executing the inputs, you may introduce desyncs. So I had to choose between focusing the camera and seeing what my own worm is doing. Doing this blind is almost impossible :/
#33 - bruh that ending LMAO
Haha! I had something much MUCH crazier planned for this. Since in TASing we count the last input, I wanted to leave the worm just there and wait however many minutes until the turns passed and the box appeared, automatically grabbing it. But no, it seems you need to actively perform an action to grab a box, even if it fell on your head and it's your turn. So I opted simply for jumping into the abyss :P

ikuyo: Delaying to account for upcoming improvements.


h3oCharles
He/They
🇵🇱 Poland
Joined: 5/17/2026
Posts: 9
Location: 🇵🇱 Poland
alexheights1 wrote:
Has anyone tried to find the fastest random seed in Worms 1? If I remember correctly you can insert a number as a seed and get a random level. Some levels are completely flat so we can defeat all opponents fast, but I'm not sure what the best seed is, and the best weapon to use on flat ground?
there is an RTA leaderboard for Worms 1, but to my knowledge, nobody has attempted to TAS it. If Amiga is TASable and acceptable here, you're welcome to give this a try
Deadcode
He/Him
Player (6)
Joined: 7/27/2016
Posts: 32
h3oCharles wrote:
In Operation Market Garden there is an RTA strategy that is frame perfect because of holding down key sets before the turn starts. Is that strategy faster than the current TAS?
That mission #2 RTA strategy is for Silver, not Gold. It only works when the Cluster Bomb crate appears on the leftmost flower on turn 4 (CPU turn 2). Mablak's video does not show enough of the map for that crate to be seen, but you can hear the crate-pop sound effect at 2:53. When done as prescribed by the video, the round time is 1:25.84. With the final grenade shot optimized, it's 1:22.12. It can be turned into a TAS Gold strategy by manipulating RNG, and by streamlining some things, but I still only managed to get it down to 1:20.74. In comparison the current TA record by Lex is 1:17.16, unbeaten since 2007. Edit: Managed to get it down to 1:00.42; now posted. Thanks for coming up with the RTA strategy, Mablak, and for the idea of making a TAS based on it, Charles.
h3oCharles wrote:
I mentioned mission #25, being Mars Star - there's one replay that Deadcode made that is very ridiculous, I wonder if it's replicable in emulation. Lots of precise and well-timed girders are involved here.
I strongly suspect that it's possible, but I'd like to save it as a surprise until a "cycles=4000000" (or similar) run reaches that point (as opposed to copying a premade team into the emulator to jump straight to mission #25).
andypanther wrote:
You have to consider that ILs with the TA tool and a fullgame run with Bizhawk are not comparable. Doing it all in one playthrough is a completely different challenge.
It's not all that different. The initial logic random seed is constant for all missions except for Mission #3 "All Quiet in the Library". So as long as the DOSBox "cycles" setting is sufficient for avoiding frame skips, the missions' input sequences (other than mission #3) are independent of each other. They need to be retimed to make the 50fps input fit into a 60fps BizHawk movie, but in theory a Lua script could be written to automatically dub a replay file into such a BizHawk movie (especially if the replay files are exported from a previous BizHawk run, meaning they're guaranteed to have only inputs that are possible).
Dimon12321
He/Him
Editor, Reviewer, Skilled player (1107)
🇷🇴 Romania
Joined: 4/5/2014
Posts: 1499
Location: 🇷🇴 Romania
Deadcode wrote:
So as long as the DOSBox "cycles" setting is sufficient for avoiding frame skips, the missions' input sequences (other than mission #3) are independent of each other. They need to be retimed to make the 50fps input fit into a 60fps BizHawk movie
If it helps, in DOS -> Settings... you can adjust "Frame Numenator" to "Frame Denominator" ratio (Num divided by Denom) to equal 50, to have a 50-fps BizHawk movie.
TASing is like making a film: only the best takes are shown in the premier. https://xkcd.com/3246/
Deadcode
He/Him
Player (6)
Joined: 7/27/2016
Posts: 32
Dimon12321 wrote:
If it helps, in DOS -> Settings... you can adjust "Frame Numenator" to "Frame Denominator" ratio (Num divided by Denom) to equal 50, to have a 50-fps BizHawk movie.
Better to use >=100 fps, so that it's possible to e.g. press Space on two adjacent frames to shoot rope and immediately detach it. Better yet to use 120 fps, so that recorded A/V can be decimated to 60 fps for YouTube, and also because at 50 fps, WA 3.8+'s tweening will get stuck at a particular phase, which might not be zero – e.g. it could get stuck at showing the state 0.01 seconds after every frame. (At 100 fps it'd be alternating between two constant phases, neither of which is likely to be zero.) With 60 or 120 fps, the phase will constantly move, guaranteeing it doesn't get stuck. Link to video This now goes up to Mission #5... using the same technique as the leading TA build replay! It's a little slower, but it still works, and is much faster than the next-slower technique. The WA v3.6.28.0+ feature of holding Shift to move the mouse at 4x speed came in handy for placing that Girder quickly, sacrificing only 3 frames in a row of no Bungee input. BizHawk movie XML settings file (same as before) DOSBox configuration file (same as before) Uses the same .hdd generated by eien86's WA installation movie. The resulting replay files
h3oCharles
He/They
🇵🇱 Poland
Joined: 5/17/2026
Posts: 9
Location: 🇵🇱 Poland
>ILs Aren't single-level TASes disallowed? i can't seem to find it in the wiki. Even then, once the FPS issue gets fixed, there shouldn't be a problem to shoehorn a new solution and call it an improvement to a TAS, right? >cycles=fixed 4000000 / Frame Denominator = 50 is it possible to fix eien's TAS to use that, or would there be desyncs galore? Is it too early to call eien's TAS unoptimized because of Deadcode's findings?
ikuyo
She/Her
Admin Assistant, Senior Judge, Experienced player (624)
🇨🇱 Chile
Joined: 7/8/2021
Posts: 198
Location: 🇨🇱 Chile
h3oCharles wrote:
>ILs Aren't single-level TASes disallowed? i can't seem to find it in the wiki. Even then, once the FPS issue gets fixed, there shouldn't be a problem to shoehorn a new solution and call it an improvement to a TAS, right? >cycles=fixed 4000000 / Frame Denominator = 50 is it possible to fix eien's TAS to use that, or would there be desyncs galore? Is it too early to call eien's TAS unoptimized because of Deadcode's findings?
As of this moment, TASVideos does not have a pipe line to handle ILs, that is correct. We want to, and there's a whole thread about it! Regarding the latter point, I think we could discuss a delay and coauthorship deal if dead code and eien are willing to work together to improve the run, and I think that would be the best possible outcome.
GuanlongX wrote:
auuuugh my face when games are creative and cool and don't fit arbitrary rulesets
h3oCharles
He/They
🇵🇱 Poland
Joined: 5/17/2026
Posts: 9
Location: 🇵🇱 Poland
ikuyo wrote:
I think we could discuss a delay and coauthorship deal if Deadcode and eien are willing to work together to improve the run, and I think that would be the best possible outcome.
Where's the line drawn for crediting someone? If someone found a route/solution, but didn't do a single input to the TAS file, do they still get credit? Does each person credited need to make a TASVideos account to get credited?
ikuyo
She/Her
Admin Assistant, Senior Judge, Experienced player (624)
🇨🇱 Chile
Joined: 7/8/2021
Posts: 198
Location: 🇨🇱 Chile
h3oCharles wrote:
Where's the line drawn for crediting someone? If someone found a route/solution, but didn't do a single input to the TAS file, do they still get credit? Does each person credited need to make a TASVideos account to get credited?
About the first question, while any person who provide input in the movie file must he properly attributed, we do not require crediting people for help that was not directly put into an input file. The way I personally do it is that I will mention and credit anyone who discovered ot created strats in my submission text. Your mileage may vary. Authors are not required to have a TASVideos account to be credited. At least one person should have it to be able to submit the movie, but "external" authors can be credited in the submission form and their name will be displayed in publication.
GuanlongX wrote:
auuuugh my face when games are creative and cool and don't fit arbitrary rulesets
Deadcode
He/Him
Player (6)
Joined: 7/27/2016
Posts: 32
ikuyo wrote:
I think we could discuss a delay and coauthorship deal if Deadcode and eien are willing to work together to improve the run, and I think that would be the best possible outcome.
A delay would be nice, yes please. eien86 has already said he's moved on and is not interested in doing anymore WA TASing, so unless something changes, it'll just be me working on the run – which is structured around doing the TASing in the TA build first, and then dubbing the replays into BizHawk. (So far the dubbing has been manual, but my plan is to write a Lua script to do it.) Some replays work as-is (so far #2), some achieve the same time with some adjustments and are essentially the same (so far #1, #3), and due to certain inputs impossible natively, some need to be redone in a way that's a bit slower (so far #4, #5). In the case of #4, I re-ran the Uzi aiming sequence brute-forcer used to previously optimize #4 for round time (and it's continuing to find improvements, by 0.26 seconds so far; using that will require the replay-to-BizHawk dubbing to be redone). The exact uzi aim has a randomness manipulation effect, because it affects the order in which the crates detonate, and also makes holes that flamelets move into (affecting how many flamelets they spawn and the number of RNG calls they make). eien86 will of course be credited, for:
  1. The idea of doing a BizHawk run, and the installation movie
  2. Missions #6 and #18: Saving round time by having the first CPU turn fire a Bazooka instead of Shotgun. (Even though eien86 wasn't the first to do this in a Mission #6 TAS – Wyvern was. But back then, we weren't optimizing for round time.)
  3. Mission #17: Demonstrating that my mine jump technique could be used to plop both enemy worms instead of just the General, which results in shorter round time. In my previous techniques I'd already done this, but didn't know it was possible with this particular (fastest) mine jump. (Funnily enough, the subpixel positioning for this is much easier than it is for killing just the General, so surely this is just the first form of the jump that he got to work.)
  4. Mission #21: Using a 2 (instead of 3) second grenade on the second turn, and having the player's worm come to a stop sooner after being hit by that grenade.
All of the above techniques have already been improved upon, but the first execution of them was his. Edit: Previously spoke of most of those being micro-techniques, and hadn't yet included them in the WKB Method credits. That is now fixed, and upon further thought, I don't think it makes sense to call some micro-techniques and others not, because there's a whole spectrum.
h3oCharles wrote:
Where's the line drawn for crediting someone? If someone found a route/solution, but didn't do a single input to the TAS file, do they still get credit? Does each person credited need to make a TASVideos account to get credited?
Also, was it improper that eien86's submission credited only eien86? Because if it's proper procedure to credit the previous TASers from which methods in the new TAS are derived, shouldn't it have also credited me and Wyvern? And perhaps Mablak too, because Mission #27 is a direct copy of his RTA that beat the previous TAS record. In the case of my BizHawk TAS, it will also credit Syc for a TAS technique in Mission #1 (not used in eien86's run). And credit the RTAers whose methods the TASes are also based on. That will be a long list: Lex, BarmaN, c0o1, Run, M3ntal, Mablak, zippeurfou, Bloopy, and Sprek.
eien86
He/Him
Expert player (6210)
🇨🇭 Switzerland
Joined: 3/21/2021
Posts: 452
Location: 🇨🇭 Switzerland
Hi ikuyo, I'm fine with any outcome, as long as I'm credited as last co-auth in the final publication. I believe the right procedure would be: 1) Delay this submission now. 2) DC submits a new (better) movie. This is best so that he can write his own fresh sub notes and receive comments without being mixed up by this submission's. 3) Cancel this submission only after a the new movie is submitted.
h3oCharles
He/They
🇵🇱 Poland
Joined: 5/17/2026
Posts: 9
Location: 🇵🇱 Poland
h3oCharles wrote:
  • the TAS uses the American soundbank, whereas the de facto default soundbank should be the English/British one. With my limited attempts to TAS this, the only explanation I have is that the region is set to the United States by default. It should be set to the United Kingdom to get the desired soundbank. This could be done during the setup movie.
Can the region be set to United Kingdom in the installation movie for different soundbanks? The English soundbank is much more recognisable to outsiders
Deadcode
He/Him
Player (6)
Joined: 7/27/2016
Posts: 32
h3oCharles wrote:
Can the region be set to United Kingdom in the installation movie for different soundbanks? The English soundbank is much more recognisable to outsiders
Yes, since I expect to be soon using a Lua script to import replays rather than doing it manually, that should be easily sorted. I also want to run GfxUpdate.exe so that WA 3.8.1 looks the way it is supposed to, and supports switching to the alternative (protan colour-blindness) team colour set. Would it be controversial if I used that alternative colour set in my movie? I think it's much more aesthetic, as it not only makes green/yellow and blue/purple more distinct, but makes the colours more saturated. Also I am disappointed that the Windows 98 SE installation movie did not disable the animation options, e.g. "Animate windows when minimizing and maximizing" and "Fade or slide menus into view". These have no effect on the current movie in its submitted form, but they do slow down testing of certain things during the production of the movie. Would including a third installation movie be the best solution for this? Then the .hdd from running eien86's installation movie could still be reused. For people setting all of this up for the first time, they'd have 3 stages of installation movies:
  1. Windows 98 SE (r3gamerz's movie, as included in the Bizhawk/DOSBox guide)
  2. WA (eien86's movie)
  3. WA GfxUpdate.exe and possiblly some settings
h3oCharles
He/They
🇵🇱 Poland
Joined: 5/17/2026
Posts: 9
Location: 🇵🇱 Poland
I think you can run the registry files in the installation movie...?
eien86
He/Him
Expert player (6210)
🇨🇭 Switzerland
Joined: 3/21/2021
Posts: 452
Location: 🇨🇭 Switzerland
Deadcode wrote:
I also want to run GfxUpdate.exe so that WA 3.8.1 looks the way it is supposed to, and supports switching to the alternative (protan colour-blindness) team colour set. Would it be controversial if I used that alternative colour set in my movie? I think it's much more aesthetic, as it not only makes green/yellow and blue/purple more distinct, but makes the colours more saturated.
I am pretty sure this is acceptable, since it is officially made (insofar as you are the game's official maintainer) and improves the quality of the output. To be 100% sure, it's always good to ask in the "Ask a Judge" forum topic. I remember trying to run it during installation but found some random error, but I'm pretty sure you'll know how to resolve it.
Deadcode wrote:
Also I am disappointed that the Windows 98 SE installation movie did not disable the animation options, e.g. "Animate windows when minimizing and maximizing" and "Fade or slide menus into view". These have no effect on the current movie in its submitted form, but they do slow down testing of certain things during the production of the movie.
Whatever is missing or can be improved in the W98 installation movie can be amended in the game's own installation movie. I remember installing new graphics drivers during the installation of GTA, since I had to pick a different GPU (only one without graphical glitches for that game) as the one in the default W98 installation. Some other recommendations: - In TAStudio, you can increase the amount of memory reserved for savestates. (Settings > Open Settings... > Savestates > Memory Limit (MB). Raise it as much as your computer can afford. That will create more intermediate "anchor" states. - If you need to use memory search to look to find anchoring points for LUA, you must set the DOSBox system memory to 16Mb or less, otherwise the search feature is disabled
Deadcode
He/Him
Player (6)
Joined: 7/27/2016
Posts: 32
eien86 wrote:
- If you need to use memory search to look to find anchoring points for LUA, you must set the DOSBox system memory to 16Mb or less, otherwise the search feature is disabled
Not sure if you're replying specifically to my filed issue... You seem to be implying that there's already built-in memory searching in BizHawk Lua, but I couldn't find anything in Bizhawk/LuaFunctions. To what search are you referring? The BizHawk UI? It would take longer to go through the search UI every time a new WA level is started, than just using my current Lua script, which takes about 9 seconds and works with 48 MB of RAM.
eien86
He/Him
Expert player (6210)
🇨🇭 Switzerland
Joined: 3/21/2021
Posts: 452
Location: 🇨🇭 Switzerland
Deadcode wrote:
eien86 wrote:
- If you need to use memory search to look to find anchoring points for LUA, you must set the DOSBox system memory to 16Mb or less, otherwise the search feature is disabled
Not sure if you're replying specifically to my filed issue... You seem to be implying that there's already built-in memory searching in BizHawk Lua, but I couldn't find anything in Bizhawk/LuaFunctions. To what search are you referring? The BizHawk UI? It would take longer to go through the search UI every time a new WA level is started, than just using my current Lua script, which takes about 9 seconds and works with 48 MB of RAM.
Alright, if you can use Lua to find the relevant positions, then yeah, that's better and there are no limitations. No, there are no LUA mem search function. Coincidentally, I had the same question a couple days ago.
h3oCharles
He/They
🇵🇱 Poland
Joined: 5/17/2026
Posts: 9
Location: 🇵🇱 Poland
Link to video he's cooking