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

Submission #5848: Meerkov's SNES Cacoma Knight in 05:32.6

Console: Super NES
Game name: Cacoma Knight
Game version: JPN
ROM filename: Cacoma Knight (J).smc
Emulator: Bizhawk 1.12.01
Movie length: 05:32.6
FrameCount: 19989
Re-record count: 8135
Author's real name:
Author's nickname: Meerkov
Submitter: Meerkov
Submitted at: 2018-03-07 02:33:55
Text last edited at: 2018-03-15 23:01:13
Text last edited by: GoddessMaria
Download: Download (7090 bytes)
Status: judging underway
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:

(Link to video)

Cacoma Knight is an action/puzzle game where you need to cut the board into pieces. Each cut will paint the smaller section, until enough of the board is painted. In this run, I save lots of time mostly from cutscenes, load time, and lag. However, nearly every level is improved as well thanks to a number of tactical changes.

Major Strategy Differences from existing run:


I use the Japanese version of the game. For the most part, the games are identical. However there are some differences that are useful for a speedrun. First off: There are three less levels in the J version. Levels 6-1, 6-2, and 6-3 from the USA version are removed, resulting in only 18 levels instead of 21. World 7 is then renamed as world 6.

It makes the most sense to compare (J) level 6 to (USA) level 7. USA level 6 appear to be the added levels.

  • 6-1 (J) requires 75%, compared to 7-1(USA) requires 86%
  • 6-2 (J) requires 80%, compared to 7-2(USA) requires 86%
  • 6-3 (J) requires 90%, compared to 7-3(USA) requires 88%.

Thus the (J) version is shorter, and a bit easier on 6-1/6-2 but a bit harder on 6-3. This is worth roughly 1 minute of savings due to having 3 less levels.

The (J) version also loads levels MUCH MUCH faster. It's about 1 second of saved loading time on every level, for a total of 18 seconds over the run. Both versions are poorly coded and contain a lot of lag/loading frames, but the (J) version seems at least better.

Additionally, as with many games, the (J) version has less frames spent on text. This only effects the villain's speech and is neglible, but it helps.


I choose the 2 fast characters, instead of the previous run which used 1 medium and 1 fast. The game is poorly coded, so this actually increases the lag of the game on some levels. Many levels, however, are not effected. Some levels have few enemies, in which case the choice of faster character does not add more lag. Some levels have tons of enemies/bullets, in which case the level would have lagged regardless of the character choice. Therefore we only actually turn out worse on the few levels which fall inbetween those two extremes: The levels that contain a medium number of enemies such that having a fast character is enough to lower the FPS from 60->(30-40). Since picking this character requires entering a new menu, we hope to be able to save at least ~200 frames during the run from level time alone. I succeeded, so the choice is correct.

Mirror Fragments:

The initial reason for this run, is I noticed that the previous run collected mirror fragments, however these are actually a HUGE time waste. Avoiding collecting mirror fragments will skip the cinematic between levels, resulting in a savings of ~10 seconds per world. This nets about ~50 seconds in our run. Additionally, since we care about the treasures we get, it forces us to change our strategy on the levels. Having 2 fast characters makes this run more flexible in terms of strategies as well.

Tactical Improvements:

Avoid Vertical Box Shape:

The game is poorly coded, as I mentioned. After enclosing a box, the game must lag while it calculates which side of the line encloses a smaller area. While intuitively, we might think the time should be based on the area alone, it actually is affected by the shape too. A verticle rectangle takes longer than a horizontal one. Therefore, you save frames by getting more horizontal lines whenever possible. This is likely due to an optimization in the flood fill algorithm (go read wikipedia if you're curious).

Avoid Vertical Movement:

Similarly, the game does NOT like when players move vertically, and this causes more lag than moving horizontally. This matters on the "inbetween" levels where we want to carefully control the lag from moving too fast.

Movement on Sidelines:

You can choose to move on the sidelines at a slow speed (without drawing). You can't do this while drawing a line in the field. However, this means that at the beginning of each level, you have a bit more leeway when manipulating lag rather than having a character stand still entirely.

Lag Manipulation:

The game prefers to run at 60, 40, or 30FPS. Sometimes you can manipulate the game that is running at 30 FPS to go up to 40 FPS when the game is actually somewhere between those two values. (Likely the designers didn't want it switching frame-rate too often, so it tries to sit at one of those three levels).

Enemy Removal:

The spiral pig can be stunned when it runs into your line. This reduces lagby a lot. Other large enemies can also be destroyed if they are inside the box when it complete. However, the trade off of making a small box to get rid of the enemy is hard to balance, so I don't do it in this run (though killing an owl was almost worth it).

AI Manipulation:

The AI can be manipulated. The primary thing I manipulate is the pink rings on the last level. They fly towards the player, so by manipulating your position you can cause them to change path, and fail to collide with the line (collision in this game is also badly programmed, if you haven't noticed the pattern).


The speed boots is a very good item for a speed run. It doubles the speed of even the fastest character. However it's only used on one level, because it needs to be near the edge for it to have usefulness. A future runner should highly consider whether they can manipulate item drops to be near the corners, which would vastly improve the run (if possible).

Previous Techniques:

Aim for Minimum Percent:

This is fairly self explanatory. The flood-fill algorithm is really slow, but it's optimized to end once it determines which side is smaller. So, by aiming for the least percent, you are actually aiming to reduce the lag frames. In my case, I don't worry too much about getting the exact number, as long as it's the fastest variation. This is due to horizontal rectangles being faster, so exact percentages which require irregulare shapes are not any faster.

Level Breakdown:

WarHippy (total) (WH section) Meerkov (total) (section difference) (Net Difference)
begin 0 1286 0 286 286
1.1 1286 449 1572 -28 258
(load) 1735 538 1993 -66 192
1.2 2273 449 2465 -25 167
(load) 2722 540 2889 -67 100
1.3 3262 463 3362 3 103
(load) 3725 1123 3828 -651 -548
2.1 4848 465 4300 29 -519
(load) 5313 545 4794 -73 -592
2.2 5858 461 5266 -25 -617
(load) 6319 537 5702 -65 -682
2.3 6856 591 6174 -28 -710
(load) 7447 1122 6737 -649 -1359
3.1 8569 498 7210 -22 -1381
(load) 9067 557 7686 -84 -1465
3.2 9624 492 8159 -20 -1485
(load) 10116 539 8631 -66 -1551
3.3 10655 632 9104 -40 -1591
(load) 11287 1134 9696 -660 -2251
4.1 12421 500 10170 -25 -2276
(load) 12921 556 10645 -82 -2358
4.2 13477 506 11119 15 -2343
(load) 13983 559 11640 -85 -2428
4.3 14542 600 12114 0 -2428
(load) 15142 1128 12714 -655 -3083
5.1 16270 639 13187 -44 -3127
(load) 16909 555 13782 -76 -3203
5.2 17464 558 14261 -50 -3253
(load) 18022 565 14769 -86 -3339
5.3 18587 628 15248 -65 -3404
(load) 19215 1130 15811 -35 -3439
6.1 20345 797 16906 -175 -3614
(load) 21079 526 17528 -47 -3661
6.2 21618 915 18007 -174 -3835
(load) 22400 544 18748 -65 -3900
6.3 22953 834 19227 -73 -3973
(load) 23673 1127 19988 -977 -4950
  • Note: I compared level 6 (USA) against level 6(J) even though they are different. Notice that 6(J) is harder than 6(USA) but I still saved time on each stage in world 6 anyway. I removed the times for world 7 since now there is nothing to compare to.

Final Time: 19988

WarHippy Time: 28416

Total Savings: 8428 frames (2 minutes and 20.5 seconds), 29.6% of total time!

GoddessMaria: Judging...

Similar submissions (by title and categories where applicable):