Hetfield90's RosenkreuzStilette "Grolla" TAS in 25:28.53. It is 1322 frames(22.0s) faster than the published run: [2114] Windows RosenkreuzStilette "Grolla" by Bernka in 25:50.57
Non-default Hourglass Settings
- Multithreading and Wait Sync: Allow
- Disable DirectSound Creation
Game Objectives
- Game version used: JPN 1.05c
- Emulator used: Hourglass-r81
- Uses no passwords
- Aims for fastest in-game time completion
- Manipulates luck
- Takes damage to save time
About the Run
Movement
This game doesn't have subpixels, but there are a lot of subtle nuances to Grolla's movement which provided significant opporunity for improvement throughout the run. As a result, I was able to save frames in practically every room of the game, even in places where the overal strategy did not change. If a stage comparison lists "more optimized movement" as an improvement, it is probably from utilizing one or more of these mechanics to save time in some way:
- Ground jumping halts horizontal movement for 2 frames.
- Dashing off a ledge halts horizontal movement for 1 frame.
- Wall jumping, unlike ground jumping, has an acceleration period along the X-axis.
- Dash speed can be applied to a ground or wall jump at any point within 4 frames after initiating it. This is almost universally better for wall climbing since you travel less distance away from the wall at non-dash speed, and back to it more quickly at dash speed, allowing you to wall jump more frequently. You'll notice I am doing this when Grolla has after-images for only half of her jumps.
- The mandatory movement away from a wall after a wall jump can be canceled at any point by letting go of jump.
- Door transitions are 10 frames faster if Grolla is in the air than dashing on the ground.
- The time spent at the apex of a full jump can be extended an additional frame by letting go of jump during the apex.
- The amount of distance moved on the final frame of reaching the top of a ladder is much greater than any other type of vertical movement. As such, you almost always want to grab the tops of when climbing a wall next to them, even if you have to inhibit your prior movement slightly to grab them higher up to eliminate extra frames of ladder climbing. This also applies to grabbing the highest point of ladders before screen transitions.
- Holding no directional inputs when exiting a dashing corridor will allow Grolla to fall earlier than otherwise
Boss Fights
With the exception of Tia and Iris, each boss in the game has 28 hitpoints and takes 2, 3, or 4 damage from Grolla's attacks. Grolla's attack damage values are as follows:
- 4 damage: 3rd ground-combo slash, desperation charged slash wave
- 2 damage: Non-desperation charged slash wave
- 3 damage: everything else
Grolla's charged slash normally takes 83 frames to charge up compared to bosses' 59 iframes, but crossing the threshold into desperation mode(≤ 14 hp) gives her a full charge for free. Since the desperation charged slash has much larger range and no preliminary slashes compared to the 3rd ground-combo slash, it is ideal to use it to start the fight if you can take damage throughout the stage without wasting much time. If unable to do 6 3rd ground combo slashes in a fight, it is faster to replace up to 2 of them with additional charged slashes before resorting to an 8 hit fight(same thing goes for going from an 8 hit to a 9 hit fight).
Boss fights do not initiate until Grolla has been on the ground of the boss room for 2 consecutive frames, at which point character control is lost. Jumping further into a boss room delays the start of the fight, but gets you closer to the boss at the same time, so the first hit of the fight will still occur on the same frame regardless if the boss stands still at the start. What this does do, however, is it displaces all of the boss' actions so they occur at different times relative to when you need to attack them as their iframes reset. One of the most difficult aspects of the run was finding the optimal distance to jump into the room on certain boss fights, since different strategies become possible/impossible when starting the fight at different times.
In-Game Time
Like the Tia run, this run also prioritizes fastest in-game time completion over shortest input file, but this only pertains to the final hit on Iris. Input can be ended ~1s earlier right as you unleash the semi-final hit if you manipulate Iris to shoot lightning and trigger Grolla's desperation to kill her with the automatic charged slash, but this delays killing Iris and doesn't take into account Grolla's X-axis distance from her standing place during the cutscene nor Iris' Y-axis distance from the top of the screen before she flies off after the fight. This has no impact on comparisons to the published run since that also ends the Iris fight with a triple slash.
This run's in-game time completion is 24:09.58 due to Hourglass' 64 fps(the youtube encode displays a different clear time since I made changes to the ending of the run after encoding it).
Stage Comparisons
Trauare(83 frames saved)
- Half of the time here was saved from more optimized movement throughout the stage and a faster miniboss fight; air slashes do 3 damage and have a 20f cooldown, and the 3hit ground combo does 3/3/4 damage with 5/5/25 frame respective cooldowns for each hit.
- The other half was saved from eliminating 2 charged slashes from the boss fight. I do a full jump in the boss corridor to get as close to terminal velocity as possible before entering the door so I can land on the ground and start the fight as soon as possible. This accomplishes 2 things: it displaces Trauare's dash to the left side of the room so it occurs after before I trigger desperation so she doesn't create illusions, and it causes her to check to see if Grolla is in the air or on the ground after said dash as soon as possible. I need to be at a certain altitude when she checks for this because it manipulates her immediately dash back to the right side of the room, and I want this to occur as early as possible so I can get back to the ground to triple slash her.
Sichte(83 frames saved)
- Faster wall climbing and not doing continuous wall jumps in the floating block section accounted for half the time save on this stage
- The rest of the time was saved from reducing the number of hits in the Sichte fight from 8 to 7. Using rain physics, I can start my triple slashes earlier while sliding into Sichte.
Luste(373 frames saved)
- The non-desperation charged slash is generally pretty useless since it only does 2 damage, but its extended range allows you to kill air boys and reduce the amount of time they are pushing you back.
- The platforms in the final room of the stage do not all spawn at the same time when you enter the room, but rather individually as you bring each one on screen. Because of this, you want to jump off the prior platform when you get close enough to the next one so that you can spawn it earlier and keep it on screen as you're moving back to the platform you jumped from. This is where most of the time on this stage came from.
- This Luste fight abuses 2 glitches to save 109 frames over the published run's fight. The first one uses the steps in the boss room to abuse the trigger that initiates the boss spawn while still allowing you to retain movement afterwards. This is done by landing on the edge of a step and walking on it for 2 frames, spawning Luste, and then falling off to retain movement in the air. Touching the ground again at any point will relinquish character control, so I need to wall jump on the steps to avoid this. The second glitch is an abuse of Luste's AI during her back and fourth jumping move. In her initial Lustatem attack, her left/right movements will mirror Grolla's exactly, but she will stop during the time that she is actually firing Lustatems. You can abuse this to position her right next to a step so that she jumps into it when she does her back and fourth jumping move. This causes her to jump straight up and down after she hits the wall of the step, and allows you to get consecutive triple slashes on her that would have been otherwise impossible if she was jumping across the room as intended.
Schwer(80 frames saved)
- I need to enter the boss fight while already in desperation mode to pull off the optimal strategy, and taking 3 hits during the stage is the only way to accomplish this. It costs 84 frames to take these 3 hits, but I make up all that time and more during the fight. By abusing the same fight trigger glitch of falling off the step as in Luste's fight, I can start the fight with an immediate charged slash and get 3 hits in before Schwer's first Geisterwand, which allows me to kill her before she even gets her 2nd one off.
Freudia(74 frames saved)
- The Freudia fight does not trigger to start until both the camera lock is in place and Grolla is on the ground. So in order to start the fight as quickly as possible, you want to chain dash jumps and land right as the camera lock sets in place since Grolla moves significantly faster than the automatic camera scroll.
Liebea(65 frames saved)
- A desperation charged slash can hit Liebea at the start of the fight 27 frames earlier than a triple slash can. The pendulum damage boost in the final room only costs a single digit number of frames since you are waiting for the wall to move out of your way, and damage boosting through the gargoyle is the already the fastest way past him, so it is well worth it to start the fight in desperation.
Zorne(13 frames saved)
- No big strat changes here, just more optimal movement
Grolla(33 frames saved)
- More optimized movement, particularly during the ladder section immediately after the miniboss, and getting underneath the bullet from the skeleton knight in the 3rd to last room
Sepperin 1(22 frames saved)
- Fortress bosses with standard explosions do not start their explosions until Grolla is standing on the ground. Because of this, it is faster to bait a cross to be near the close block at the end of the Crosswall fight so you can trigger Grolla's desperation just before the last hit and release it from a standing position.
Sepperin 2(48 frames saved)
- The positions of the glass shard clumps on the Poltergeist fight are not random, but how long it takes them to condense and start moving is, which can vary by about 10 frames each cycle; almost all of the time save came from manipulating better patterns. Jumping and slashing poll RNG since Grolla makes noises sometimes during those actions, and she can only advance RNG 1-2 values with each one, with minimum intervals of 10f between jumps and 20f between slashes.
- The 3rd ground combo slash has 2 hit boxes, one that is behind Grolla as she raises her sword, and a second one that arcs above and in front of her as she slashes. Each glass clump takes 2 hits to kill, besides the final one which takes 3, and the 3rd slash can double-hit with its 2 separate hit boxes at a faster interval than consecutive combo slashes, so it is useful for every glass clump besides the ones that spawn high in the air on the 2nd and 3rd cycles. I have to damage boost off the ground level spawns and get inside of them to make both hitboxes contact as soon as possible, and the final large clump takes 3 hits and moves very quickly, so I need to be in iframes in order to hit it with the 2nd slash and the 3rd slash double-hit.
Sepperin 3(29 frames saved)
- Better movement and a more optimal boss strategy. This was the first fight where the exact distance of the jump into the boss room was pivotal optimizing the fight(besides Trauare which was simplified by water physics and a high boss door preventing you from starting the fight any sooner). In the first phase, you are more limited by the scythe's movement than you are by its iframes, since it takes Grolla so long to follow it back and fourth across the room that it's impossible to keep it under constant iframes. Positioning Grolla further left on the first slash and further right on the 2nd while letting the scythe move into her already extended sword slashes instead of slashing the scythe point blank, I was able to save frames over the published run by reducing the amount of time it took me to get to the right side of the screen for the 3rd slash.
Sepperin 4(109 frames saved)
- Triggering desperation partway through phase 2 of the Graf Michael fight allowed me to get 3 4 damage hits off and shave a hit off of the fight, which is impossible with only triple slashes because of the fireballs
Iris 1(52 frames saved)
- Bottom route in the final yoku block room ended up being ~10f faster than top route; you avoid the zig zag part afterwards but have to wait for the yoku block to appear and get an extra wall jump as well
- The optimal pattern for phase 1 of Bosspider is much less specific for Grolla than it is for Tia, and thankfully so since her ability to manipulate RNG is pretty pathetic compared to Tia's. All grolla needs is either 5 cross overs or 3 crossovers plus spiderlings(both take the same amount of time) with one of the crossovers being on the bottom to get 2 consecutive triple slashes. The second phase just needs to last long enough to get 4 hits off.
Iris 2(24 frames saved)
- More optimized movement, etc...
- Since Deviled Egg melts immediately after the final hit instead of exploding, you don't have to end the fight on the ground.
Iris 3(161 frames saved)
- Since a boss fight doesn't trigger to start until Grolla is on the ground for 2 consecutive frames, you can jump right as you appear on the other side of the teleporter. This jump delays the first hit by 1 frame on bosses that stand still at the start of the fight because of the 2 frames of halted horizontal movement at the start of a ground jump minus the 2 frames that Grolla is walking when she lands when the fight is waiting to trigger(2 frames of walking ≈ 1 frame of dash speed). Displacing bosses' actions relative to their iframes in some cases opens the door for completely new strategies on them that make that 1 frame loss well worth it.
- Counter-clockwise is definitely the optimal route through the rush since it allows you to start all but 1 boss fight with a charged slash. Because of Tia's increased damage values, starting with a non-desperation charged slash does not add an extra hit to the fight, but still gives you the benefit of hitting her earlier with its increased range.
- Baiting Trauare back to the right and triple slashing her is slower in the refight simply because it takes too long to get back to the teleporter afterwards, so the fastest way to kill her is to just brew up a charged slash as you're following her to the left side of the room. This also saves 8 hit points, which is extremely useful later on. Just like the first fight, jumping this distance into the room allows me to trigger Trauare's desperation after she dashes to the left side of the room so she doesn't create illusions.
- Jumping this distance into the Sichte fight causes her last green pea to hit Grolla right as she stops time as part of her desperation attack. This allows me to regain movement sooner than if I had waited for Sichte to jump into me, saving 16 frames on the subsequent attack. More importantly, this also saved 3 hit points which will be useful later on.
- Unfortunately, even if you jump right next to Schwer, it is impossible to get 3 attacks in before her first Geisterwand to eliminate her second one. This is because charged slash has a 3 frame delay before it does damage, and using the step glitch in the first fight allows you to release the slash 3 frames before the fight starts so Schwer takes damage on the first frame of the fight.
- The 7-hit double Zwinger pattern with no iframe downtime strategy is impossible to pull off on the refight because there is no blind spot behind Freudia where you can slash her freely like on the first fight, since her back is up against the wall in the refight room. I had resigned myself to spending my last 6 spare hit points on this fight by damaging boosting off of one of the 2 horizontal moving Freudianstachel volleys to avoid downtime between triple slashes, but no matter how you slice it, even with jumping any distance into the room, two or more of your attacks will have be delayed during a Zwinger from one of the horizontal Freudianstachel volleys and/or the 30frames of invulnerability the Freudia has before each Zwinger pattern. The published run does an 8hit fight to get around this, but I was able to get a 7hit fight with only 11 frames of downtime by using lasers as Freudia's first attack as well as save the 6 hitpoints I thought I was going to have to spend in the process.
- I have to use at least 1 charged slash on the second phase of the Iris machine fight to offset the timing of my slashes by ~20 frames so I can damage boost off the pink ball, since otherwise they are nowhere near me at the times I am slashing Iris. This damage boost allows me to go into Iris Machine's hitbox and use my secondary ground combo slash to attack the platform to force it outward and my triple slash to attack Iris Machine. This sequence of events is started right on the 2nd slash of the fight for 3 reasons: the first being the timing of the pink ball damage boost, the second being because it causes my second slash to hit the platform as it is oscillating upward(once it starts moving out it stops oscillating, and you can only hit Iris Machine with a triple slash if the platform is at a high position), and third because it causes Iris machine to be moving left when the platform is moving left, and moving back to the right when the platform is moving back right as well. This is the only way to get 3 consecutive triple slashes off with minimal downtime. Also, just like as Tia, you want to end the fight on the platform to reduce the number of frames spent falling back to the ground since the explosion does not start until Grolla is standing.
Iris 4(149 frames saved)
- Unlike Freudia, chaining jumps into the boss room actually delays the start of the Iris fight instead of expediting it. However, this is the only way to start the fight close enough to get 2 hits in the first cycle, which allows you to kill her in 6 total cycles instead of 7. I suspected that killing her in 7 cycles without delaying the start of the fight to be close to the 6 cycle fight in timing, but it ended up being over 2 seconds slower.
Possible Improvements
- At least 1 Poltergeist cycle is at least 1 frame suboptimal; I'm not sure about the others since the fight was not disassembled, but given Grolla's limited RNG manipulation abilities, the fastest patterns possibly attainable in this run were attained.
- Jump off the 2nd to last platform in Sepperin 3 into the boss door instead of dashing off(1 frame)
- There aren't any other concretely known improvements to this run at the time of submission, but there are some places where I suspect more frames can potentially be squeezed out. These places include boss fights with strategies that revolve around jumping a specific distance into the room and ladder climbing screen transitions where loading a savestate from the previous room causes an Hourglass crash. Pretty much every rerecord when optimizing these areas causes Hourglass to crash and then you have to re-watch the entire run up to that point each time since your savestates have gone stale. I did quite a lot of this, but I still suspect 1-2 more frames can be saved in some of these places just by nature of how restricted I was by Hourglass limitations in my trial and error.
Acknowledgements
Sairaan: Came up with several improvements in the run and helped out with mechanics info.
Bernka: For his published run which I referenced throughout this run.
Nach: Very nice improvement. This was highly entertaining, and the movement is quite clever, resulting in a clearly well optimized TAS. The effort shows. Accepting.
feos: Bup.