Golvellius is a classic Zelda-esque SMS game where you play as a young wanderer named Kelesis. He learns about the dying queen and ventures off into the Valley of Doom to look for a cure for the queen's disease. A wise woman sees the boy's utter unpreparedness and fits the bill of the "It's dangerous to go alone! Take this!" role. Take Kelesis on an adventure through platforming and autoscrolling "shmup" caves and a large valley littered with monsters and hobbit holes. Kill monsters for gold to pay off the greedy wise women who sell swords, bibles that magically augment your ability to carry gold, invincibility rings that don't make you invincible, magical boots, magic mirrors, and a handful of other items I don't get. Yeah, everything you need to make progress has to be bought, so there is quite a hefty amount of grinding in a casual run. A TAS on the other hand, not so much. I routed it to minimize that nonsense, meaning I also skip a lot of crap.
This run is only one item too many for a Low% run. I grab the Valley Sword after defeating Bachular because it allows me to do 3x damage to normal enemies and 2x to bosses. Due to the invincibility periods of enemies and bosses, this makes killing things more than 3x faster, so it's definitely worth the time. But due to the time required to grind for gold to buy other items, I only get what is absolutely necessary besides that. I could also get the Legendary sword, but since it isn't available until late and would require 50k of grinding (That's over twice as long as the longest grinding section), I skip it. Even with being fully refilled on gold when beating a boss, it's not really practical to put it in the TAS route.
A few mechanics to note about this game is that enemies have an invulnerable period (really more like a secondary HP that isn't affected by sword power) after taking damage, however, enemies will be stunned as long as the sword is touching them. You can hold your sword out almost long enough to do 3 damage. I assure you that even when you don't hear the damage sound, I am doing something of effect with nearly every swing of the sword. On the overworld, you are restricted to moving on the 8x8 grid, though you can move on any pixel as well as diagonally in the boss rooms, making bosses easier to work with than overworld grinding. Taking damage also causes you to be stunned for a moment. Also note that in the sidescroller caves, you cannot change your jumping height, making placement of jumps very important. A handful of jumps made in the run are frame perfect. When you take damage, you are knocked back about 3 tiles or until you hit a wall, in which case, you can begin to move forward again. You also cannot move horizontally while the sword is out unless you just took damage and have already touched a back wall.
I do not take damage very often, as it usually costs time rather than saving it.
I routed the game myself. There is still a little room for optimization, but really not much. You could save 30 seconds at the most by tweaking the route.
This run heavily manipulates RNG to get favorable spawns. It turns out to be a very manipulatable RNG- which is influenced by both the frame count and player 1 inputs. (I tried player 2, and it actually makes no difference, unfortunately.) There are quite a few places where I try several input sequences/combinations until I get a spawn I can work with. There are even instances where I manipulate the boss patterns (Especially the third boss).
I abuse only one noteworthy glitch that allows you to crouch and stab in midair in the sidescrolling caves. It saves a few frames, possibly up to a second throughout the run. The midair crouch also reduces how much knockback you suffer. I discovered this around the fourth dungeon, so that opens room for improvement (a few frames) in the first cave.
I used RAM watch. These are the watches I used for most of the run:
083E Gold /10
012D Sword Timer
0175 Enemy 1 / Boss HP
017F Enemy 1 Invincibility Timer
0168 Enemy 1 Spawn Timer
0195 Enemy 2 HP
019F Enemy 2 Invincibility Timer
0188 Enemy 2 Spawn Timer
01B5 Enemy 3 HP
01BF Enemy 3 Invincibility Timer
01A8 Enemy 3 Spawn Timer
01D5 Enemy 4 HP
01DF Enemy 4 Invincibility Timer
01C8 Enemy 4 Spawn Timer
01F5 Enemy 5 HP
01FF Enemy 5 Invincibility Timer
01E8 Enemy 5 Spawn Timer
0215 Enemy 6 HP
021F Enemy 6 Invincibility Timer
0208 Enemy 6 Spawn Timer
The gold counter is rather interesting, because, rather than just storing the value like you would expect it, it treats each hex digit as a decimal digit. There are a handful of other values that do this as well, but they weren't important in making the run.
This is actually my second attempt at a TAS of this game, and it's actually a couple minutes faster than my first attempt. My original attempt is quite sloppy, but you can watch it if you want.
This is the first run of this game on this site, so I'm not sure what the timing criteria would be. I suggest calling time either at the finishing blow (frame 145674) or the blackout shortly after (frame 146004), as I'm still in control for a brief period after landing said hit.
ars4326: (replaced movie file with version that ends on last decisive input) Judging!
ars4326: Hello, Beefster09. As you stated in the submission text, it's good that you went ahead and made a second pass through this game before deciding to submit. However, as others in the thread have observed and pointed out, there are still places in the run where significant time can be saved. I went ahead and made a brief test WIP to show this (linked in the thread). In addition, I listed out how I saved time in spots and also included a couple of useful tricks found, in the process.
All in all, you've done well so far in studying this game and making strides in uncovering improvements. I hope you'll continue to work on this and create a tighter run worthy of publication. Keep at it!
Rejecting due to sub-optimality.