Hi everyone,
After many years of watching and enjoying tool-assisted superplays, I decided last month to get busy and make one of my own. Since I grew up during the 8-bit and 16-bit eras, I wanted my first run to be from one of these systems. I'm also a fan of RPGs and strategy games; and after skimming through the list of current movies, I noticed that a particular favorite of mine was missing.
Warsong! Or its native title, Langrisser (ラングリッサー).
I remembered this one fondly growing up. The catchy music, the cool attacks commanders used to decimate enemy units, the DIFFICULTY, and so forth. After a brief test run, where I figured out basic timing and RNG formulas, I became driven to finally give this 'gem' a run (hopefully) worthy of tasvideos. My goal, simply, was to COMPLETE EVERY STAGE AS FAST AS POSSIBLE, with a few speed/entertainment tradeoffs along the way (noted in the stage commentary, below).
For those unfamiliar, the Warsong/Langrisser franchise is a collection of traditional strategy role-playing games. Warsong is the first game of the series, which places you in control of primary commander Garett, along with other subordinate commanders as they become available over the course of the story. The game's intro stage places you in control of Garett during a siege attack on Baltia Castle by the evil Dalsis Empire. Upon being overrun by enemy forces, Garett's father, King Alfador, urges him to flee and gather reinforcements. With sword master Baldarov by his side, Garett embarks on a journey uncovering a plot of global implications for all mankind...
Being my first TAS, my initial challenges came from getting used to frame-by-frame input (frame advance), as well as discovering the earliest possible frame in which I could begin/confirm an action. The game's RNG was also a headache to deal with, at times. Specifically, the game's 'Player' and 'A.I./Enemy' phases operate on two different RNG cycles.
'Player' phases deal with the battle outcomes of your own controllable troops--which, by far, is the easier of the two to manipulate. Basically, after moving next to an enemy target and before confirming whether to attack it, each individual frame onward is capable of producing a different outcome, depending on when the 'C' button is pressed. Here's brief example of how pressing 'C' on different frames can produce wildly different results:
Garett vs. Shaman Commander
- 33328: Garrett 8hp Shaman 0hp
- 33330: Garrett 9hp Shaman 3hp
- 33332: Garrett 7hp Shaman 1hp
- 33333: Garrett 7hp Shaman 5hp
- 33336: Garrett 6hp Shaman 2hp
Fairly simple. On the other hand, manipulating outcomes during Ally/Enemy phases is an entirely different story. I've yet to COMPLETELY figure out the formula, myself, as this would require better knowledge of understanding RAM addresses. However, I have developed a method which has proved reliable for me throughout my run. Due to length of explanation, you can simply head over to my 'Warsong' page in the 'Genesis' forum (page 1) to check it my findings.
Constructing individual stage strategies was also an important consideration, since heavy luck manipulation allowed for completion times far beyond the possibility of a real-time speedrun. For example, every commander in the game is capable of hiring up to 8 mercenary units (soldiers, archers, etc.), whom are immediately destroyed upon that commander's death. I exploit this to the FULLEST throughout my run, with the exception of cases where I needed to level grind my characters. I tried to keep this to a minimum, although some stages went longer, by necessity, in order to have my characters strong enough to handle the challenges ahead.
All in all, nothing really fancy was done during this run's development. I currently know nothing about Lua scripting, hex editing, or any of the more advanced tools available. I just simply worked hard with the knowledge that I had available; hopefully this shows throughout the movie.
Here's a brief rundown of each stage:
Scenario 1: 13,468 Frames (Reset from start). 2 turns.
Moving Garett to the upper-edge of the Castle was simple enough, the challenge here was in manipulating the ally/enemy fights to end as early as possible. Case in point, Tiberon's mermen had to perform in a specific fashion in order to both prevent the enemy from attacking Tiberon multiple times, and also to die in the earliest possible frame. A clash between Sabra and Geryon's soldiers also had to end with them dying at the same time (which took quite a while for me to manipulate).
Otherwise, everything went smoothly according to plan.
Scenario 2: 42,941 Frames. 19 turns.
Shaman Commanders (and other spell-using units) have a spell attack range of 5 squares. Due to this, I always either position my characters just outside of their spell range prior to attacking, or have another commander pose as a 'decoy' to drain their MP. I applied the latter method with Baldarov throughout this stage to ensure that Garett could eventually move in at full power and go for the kill.
I also shrewdly exploited a scripted enemy ambush during turn 13 to my advantage (hehe...they never saw it coming).
Due to the victory condition of having to kill all enemy units, I had to wait out the last few turns for the final Shaman Commander to move into range.
Scenario 3: 31,783 Frames. 6 turns.
During the first turn I manipulated 7 of Thorne's soldiers to die off in order to save time on ally movements. The reason I didn't kill off the 8th one was because, as long as an enemy commander has at least 1 remaining mercenary, they WON'T ATTACK YOU (that is, if you're not directly next to them). Neither Thorne nor Baldarov could've reliably killed him off during the 'Enemy' phase, otherwise. Afterwards, I positioned Baldarov to act in response to Thorne's A.I. behavior; another reason why I left his remaining soldier unit alive. Thorne moving east allowed me to position Baldarov just outside of the Shaman's spell range in order to set up an attack during the next turn.
Afterwards, Malvese easily fell to the advancing Baldarov (despite being at lvl 9).
Scenario 4: 37,759 Frames. 10 turns (winning condition).
Either way I looked at it, this was going to be a long stage. At this point in the game, slimes are way too powerful to take on (even with Baldarov) and staying in one spot while defending is just suicide. Accordingly, I moved my commanders in an orderly cadence towards the southeast corner of the map, where a peculiarly placed corpse resided just over a small mountain (maybe put there as a hint?). This also served to keep all of the slimes away from Mina's reinforcements as long as possible. Despite attracting one of the smaller forces, she managed to kill its commander off with her guardsmen in 2 turns.
Thorne, for once, wasn't near as annoying as he can usually be in this stage (why did you bring SOLDIERS?).
Scenario 5: 24,082 Frames. 7 turns.
Ah, my favorite BGM in the game! Things begin to heat up as I no longer have the luxury of fighting against crudely-armed bandits and shamans. I make use of the game's 'Semi-Automatic' feature in cases where my commanders are too far apart from each other to justify moving the cursor back and forth. Unfortunately, spell casting isn't an available option while using the feature (which is stupid..). This is where I really begin to use heavy luck manipulation to kill off commanders with my under-leveled fighters.
I also included a small speed/entertainment tradeoff here to showcase a slight bug. After this stage's conclusion, Baldarov is scripted to die in the story due to taking an enemy arrow intended for Garett. However, I'm guessing that the game designers forgot to take into account a situation where Baldarov is killed during the ACTUAL BATTLE. As a result, Baldarov's post-stage dialogue carries out regardless of whether he lived or not. I showcase this by having Baldarov killed during the final battle with Lance, as well as allowing the relevant dialogue screens to play out longer.
Scenario 6: 24,198 Frames. 10 turns.
As with the last stage, heavy luck manipulation was CRITICAL in obtaining victory. Manipulating battles against horseman without taking any damage here was TOUGH. I think I easily spent 5-7 minutes per battle in rerecords. Getting the optimum battle formation for this stage took some trial and error, also. I did have some fun manipulating Thorne's Superman impression, though.
Admittedly, there's one glaring mistake in this stage that I was unable to correct, at the time, without losing frames. It turns out that I actually didn't need Sabra to follow Garett into battle with the remaining Enemy Lord. However, I was unable to duplicate a similar one-hit kill on either of the Royal Soldiers unit a second time when trying to correct this (go figure), which would have made me lose an entire round in the process. Despite that, I was pleased with how the final fight played out.
Scenario 7: 69,389 Frames. 7 turns.
Similar to stage 1, I had a LOT of ally manipulation to handle. Specifically, Bayard is trapped within a small fort halfway across the map with just 8 soldiers to fight against 2 aggressive enemy commanders (with 16 archers, total). Normally, you're supposed to race to his location as fast as humanely possible before Bayard becomes overwhelmed and dies. However, in this TAS lady fortune smiles upon Bayard as his forces manage to kill off EVERY attacking unit without Garett and Co's help.
I can guarantee that's virtually impossible on a normal playthrough!
Sabra and Calais were also promoted to their second classes. The overall plan here is to level up Calais as a 'Wizard' while advancing Sabra to her final class of 'Dragon Knight' near the end of the game.
Scenario 8: 5,179 Frames. 2 turns!
Going into this I knew it was going to be short but not THIS SHORT! While playtesting, I happened to casually notice the body of water adjacent to the fleeing Enemy Lord...and just how effective Tiberon and his mermen are in those types of situations. After putting 2 and 2 together, I wasted zero time in this stage by moving Tiberon directly across the lake to engage.
Scenario 9: 29,480 Frames. 8 turns.
Another stage where Tiberon proved immensely useful (unfortunately, the last stage he would assume such a role). I positioned Calais along the bank's right flank in order to draw away the Serpent Commander from Garett. Meanwhile Tiberon crushed advancing enemy forces as Garett safely crossed. On Calais's end, casting fireball was a major help towards killing off stubborn enemy units. In this case, lizardmen are DECEPTIVELY TOUGH at full power and are very difficult to reliably consecutively manipulate one-hit kills.
Ambushing Leviathans and a cameo from Lance were no match for Garett as he speedily rushed across the map, leaving them in the dust.
Scenario 10: 29,778 Frames. 6 turns
I forewent using 'Semi-Automatic' during the first turn due to a dialogue scripting bug where the movement cursor remains on the enemy Lord after he responds to your first attack. The big obstacle in this stage was to eliminate the enemy Bishop within a single round; however, successfully killing off one of his archers proved to be much tougher than their stats indicated. I improvised by having Sabra move in first, instead of Garett. Bayard also managed to one-hit kill an advancing Serpent Commander with 7 HP (a very rare outcome). However, I wasn't able to repeat that with the Serpent Commander along the left-hand side (go figure).
Afterwards, two fireballs from Calais softened up the enemy Lord enough for Garett to move in for another stage-ending kill.
Scenario 11: 19,771 Frames. 6 turns.
I was very surprised to realize that only two commanders were needed to quickly finish this one. Another point of interest was the fact that Garett only needed to land OUTSIDE of the goal marker in order for it to count as a victory.
After dispatching the blocking enemy soldiers, Garret absorbs a heavy attack from a Grand Knight before scaling an adjacent wall; and thus, escaping his attacker's range (thank goodness Grand Knights CAN'T scale walls!). Calais also had an exciting moment due to extreme RNG manipulation. I honestly didn't I'd be able to pull that one off.
Scenario 12: 32,279 Frames. 5 turns.
The milestone of the game's story arc! This one took the most intricate planning due to the forced deployment of EVERY commander in my roster; some of whom have rarely been used so far! Looking back, I'm extremely glad that I decided not to kill anyone off (similar to Fire Emblem, commanders are permanently gone once killed) since almost everyone played a crucial role in this stage's execution.
On the left-hand side, Tiberon gave the assist in killing off an enemy archer and creating an opening for Garett to move to kill the mage. Bayard weakened the Grand Knight enough for Garett to finish off during the next combat round. Meanwhile, Calais and Co. tightened up their initial formation and waited out a viscous enemy assault before responding in kind during the next turn. Newcomer Duke Carleon's level 9 status was taken advantage of as I promoted him to 'Knight' in order to generate enough attack power to defeat Emperor Pythion. Not to be outdone, Calais reached level 5, which greatly increased her spell's range and attack power.
What followed during round 2 and onward was a very enjoyable demonstration, in my view, of what a well-planned TAS can achieve. For those who've played this particular stage in the past, I'm sure you'll also be satisfied with the results. Emperor Pythion never quite looked so helpless as he did in this playthrough!
Scenario 13: 17,545 Frames. 3 turns.
Similar to the previous stage, I needed almost all available commanders--as well as a few mercenaries--on hand to pull this one off. Setting everyone up to be in just the right spot paid off as enemy Basilisks were never able to fire off their petrification attacks. And despite being out of range, Guardsmen are still extremely effective against slimes.
Out of necessity, there were some noticeable pauses with the attack cursor as I waited for the RNG counter to produce a favorable result (some spots were upwards of 250 frames). I hope this doesn't distract viewers too much as this was the only method I had available to finish as quickly as possible.
Scenario 14: 31,045 Frames. 4 turns.
An easy, albeit frustrating, XP farming stage as numerous restarts were made due to making small adjustments in equipment and battle order. Those chosen were paired off into teams (Garett/Lance & Sabra/Calais), and sent off on either side to take out the werewolf hordes. Magic spells were then used to soften them up as full-powered units are very tough to take out in a single hit. Case in point, I was a tad disappointed near the end at being unable to manipulate a one-hit kill to the last group of werewolves with Calais. This may or may not have been inconsequential, however, as a fireball spell wiped them all out in the following turn.
Scenario 15: 13,734 Frames. 4 turns.
This one came together remarkably quickly as I found out what fire elemental Efreet was fully capable of. I delayed releasing him for a turn so that he would go directly after the rampaging Great Dragon and not focus on any other monster units.
Once in range, Efreet effectively did the work for me as he snuffed out the Great Dragon in a single round.
Scenario 16: 40,799 Frames. 9 turns.
Another stage that went very well with little issue. I had to strictly ensure Sabra had enough kills to reach lvl 10 by the stage's end (thus, I had to level grind a little more). With 35 attack power gained from the Evil Axe, I was pleasantly surprised how Sabra was able to inflict the 6 damage needed to defeat the Great Dragon for good.
My remaining challenge, commander-wise, is getting Garett promoted before the final battle.
Scenario 17: 28,759 Frames. 7 turns.
With two Dragon Knights at my disposal, this normally long battle became a breeze. Generating one-hit kills without taking damage, unfortunately, took the longest here (upward of 4-6 seconds in real-time), though it was a needed sacrifice to quickly finish the stage. Flying units apparently use a different formula for calculating taking damage as Lance (42 ATT/14 DEF; Evil Axe), logically, should have taken much more damage than Sabra (38 ATT/28 DEF; Warsong), yet their results while playtesting were similar.
Almost done!
Scenario 18: 6,296 Frames. 2 turns!
I think most people who've played the game and gotten to this point have already figured out the strategy, here. Sabra is simply positioned outside Naxos's spell range while she waits for the next turn to get inside. The golems were all for show for poor Naxos!
Scenario 19: 2,399 Frames. 1 turn!!
The game designers DEFINITELY had speedrunning in mind towards the end! With Lance leaving the party for storyline purposes, I positioned Sabra and one of her griffins directly across from Mortimus so she could blaze across and wipe him off the map, making this the only stage that played out without an enemy phase.
Scenario 20: 50,448 Frames. 17 turns.
Warsong's 'grand finale' just so happened to be one of the toughest to execute. First, Garett HAD TO get in enough kills to promote up to King as Ganelon's 34 defense and unit placement (40% DEF bonus) was too much for anyone else to handle (Sabra was busy elsewhere). Actually earning those kills was also time-consuming as lvl 9 Living Armors were tougher to manipulate favorable kills for than their lvl 7 counterparts (hit accuracy substantially increases as a commander increases in level).
Otherwise, the events of the final turn were my favorite out of the entire game due to the sense of accomplishment and sheer unlikelihood of it ever happening in real-time. Sabra was a beast!
Total frame count: 551,132 Frames
Average time: 7 min. 39 sec. per stage
Special thanks to everyone who kept up with my updates in the Genesis forum. I greatly appreciate the view count for such a relatively obscure game!
Suggested Screenshot:
[dead link removed]
Suggested Description:
In this traditional strategy RPG, every stage normally has to be approached carefully and with a full stock of troops. All of that was cast aside in ars4326's run, where extreme luck manipulation became the driving force in obtaining victory after unlikely victory. Garett's team operated as a virtual skeleton crew as only the bare minimum of resources were deployed in his struggle against the Dalsis Empire and a foreboding, ancient evil.
edit: I've just completed and submitted a full caption commentary for this run. 448 comments (mostly good!) breaking down game mechanics, tactics, and additional insights. Hope everyone enjoys!
feos: Accepting for Vault and publishing.
feos: Reconsidering this movie for Moons.