Submission #2421: Kumquat's GG Tails' Sky Patrol in 06:53.37

Console Game Gear Emulator
Game Version JPN Frame Count 24802
ROM Filename Tails' Sky Patrol (J) [!].gg Frame Rate 60
Branch Rerecord Count 27474
Unknown Authors Kumquat
Game Tails' Skypatrol
Submitted by Kumquat on 10/9/2009 4:44:57 PM

Submission Comments
Tails' Sky Patrol is an obscure Game Gear game that stars Sonic the Hedgehog's sidekick, Miles "Tails" Prower. In it, Tails must fly through five levels at high speeds while avoiding pretty much everything. Instead of collecting Rings to protect himself, Tails has a special Ring that he can throw like a boomerang or grab things with. Although this game is very unpopular, it is one of my favorites and I had a lot of fun TASing it, and I hope you enjoy watching it!
You can watch this run online on YouTube, Viddler, or Dailymotion. Of them, I would recommend YouTube; the framerate on Viddler is terrible and the image quality on Dailymotion is not as good (not to mention the ads).


  • Emulator used: Dega v1.16, MAME core.
  • Aims for fastest time.
  • Takes damage to save time.
  • Kindly asks programming errors if they are okay with what I do to them.


One day, on an unknown island, Witchcart the evil witch declared herself to be the new ruler of the island.
No one really cared.
Furious with the dearth of respect towards her, Witchcart turned all of the islands inhabitants into crytals and glued them to yellow anti-gravity ceramic tiles. "I don't need you!" she yelled. "I already have my loyal army to do my bidding! Eeheeheeheehee!"
As she and her highest ranked minions -- Fockewulf the Wolf, Bearenger the Bear, and Carrotia the CarrotRabbit -- flew off to another part of the island, Tails leapt out from the bushes he was hiding in. "I have to stop them," he thought as he flew after them. "If I don't, they might cover the entire world with rails!"
Unfortunately for the islanders, Tails was too distraught by the thought of living in a world filled with rails to bother saving them, and they existed wistfully ever after as crystals glued to floating tiles.

General Comments

Buttons 1 and 2 have the same function in this game, so I will just say "Button 2" because it is the one I used. (In fact, you can switch between both buttons in the middle of spinning the Ring and you will not throw it.)
Tails's hitbox is very small, but enemies and items have large hitboxes. This is why Tails can fly close to walls but not enemies, and why items (except for crystals) can be collected without actually touching them with the Ring.
Tails's normal maximum horizontal speed is 3 pixels per frame, and his normal minimum speed is 0.5 pixels per frame. The memory adresses are 0xD54D for pixel speed and 0xD54C for subpixel speed.
Tails's normal maximum vertical speed is 1.25 pixels per frame (in either direction). The memory adresses are 0xC799 for pixel speed and 0xC798 for subpixel speed.
Tails begins each area with 24 stamina, out of a maximum of 32. Two out of every three frames, the number at 0xD78D goes down by 3. When it reaches 0, Tails's stamina, which is stored at 0xD78E, goes down by 1. If both of them are at 0, Tails will begin falling and eventually crash into something, costing him one life. (0xD78F seems to serve the same function as 0xD78D.)
If Tails is hit by an enemy, he will lose 1 stamina and begin falling. If he has any stamina at all left, he can recover if you press Button 1 or 2 several times. The fastest way to recover is to press 2/1/2 starting about 13 frames after he is hit. (Constantly pressing either button before then will take longer.)
Boss health is assigned to the next enemy health adress in line. In this run, Fockewulf and Carrotia's health are located at 0xC89F; Bearenger and Witchcart's health are located at 0xC91F.
At the end of a boss fight, you want Tails to be as close to the center of the screen as possible and the boss as close to the top of the screen as possible. That farther they are from those positions, the longer it will take for Tails to fly off.

Ring Notes

Tails's Ring has three different states: following, spinning, and thrown.
  • If Button 2 is not held, the Ring will follow behind Tails (ranging from above and to the left of him to below him, depending on his speed and direction). While it is following, it will interact with collectable and grabable objects.
  • If Button 2 is held, the Ring will spin around Tails at a rate of about one revolution every 32 frames. While it is spinning, it cannot interact with anything, and Tails will let go of anything he was already holding. Grabbing and throwing a boss into something does 4 damage.
  • When Button 2 is released after being pressed, the Ring will be thrown forward. It can be angled up or down. The amount of damage it does depends on how long it was spun -- less than one revolution will do 1 damage, one or two revolutions will do 3 damage, and three or more revolutions will do 5 damage. It reappears in front of Tails after it returns to him, which can be used to grab things about 9 frames sooner than would otherwise be possible.
Throwing two 1 damage Rings is faster than one 3 damage Ring. Throwing two 3 damage Rings is faster than one 5 damage Ring.

Collectable/interactive objects

There are many items for Tails to collect or interact with! Except for the checkpoint bell, he must use his Ring to collect or activate them.
  • Mint candy: Delicious candy that comes in groups of one, two, or three. Single candies restore 8 stamina, double candies restore 16 stamina, and triple candies restore 32 stamina. After Tails collects candy, his stamina will not go down until his stamina meter has caught up (even getting hit will not cost stamina).
  • Crystals: The islanders have been turned into these crystals, and it is up to Tails to save them!but no one cares about them because they waste time on the score tally screen. There are ten in each area except Metal Island, which only has nine. Although it would make sense for them to be required for a better ending, collecting them does nothing more than give you bonus points at the end of each area.
  • Invincibility panel: A red panel with a star on it. Collecting it will make Tails invincible for a few seconds, but who needs that?
  • 1-Up panel: A yellow panel with "1-Up" on it. It gives Tails an extra life.
  • Checkpoint bell: A yellow bell that acts as a checkpoint if you ring it. A thrown Ring can also ring it.
  • Switch: A switch that makes certain walls disappear if you flip it.

Grabable objects

Tails can use his Ring to grab on to a variety of objects that will move him around in some way. His stamina will not decrease while he is riding a minecart or being flung by a pole or catapult.
  • Blue Poles: Blue poles that will spin Tails around and throw him away. By grabbing the small poles at certain angles, it is possible to be flung away immediately, but it is not always the fastest way. It is not possible to manually let go of poles.
  • Minecarts: Witchcart's spare minecarts that she carelessly left lying around. To get the best boost from them, the Ring should be above and to the left of Tails, and you should let go within about six frames of grabbing it.
  • Weight: A very heavy weight that will slow Tails down. Grabbing it will boost you forward, but the speed drop makes it slower in most cases. By pressing Button 2 about two frames before you would grab it, you can fly by it without throwing or spinning the Ring.
  • Balloon: A balloon filled with something lighter than air. Holding it decreases Tails's horizontal speed and increases his vertical speed. Just like weights, it is possible to pass it by pressing Button 2 about two frames before you would grab it, but Tails will still change to his balloon-holding animation for one frame (as seen in the screenshot suggestions below).
  • Catapult: A bar that flies forward when you touch it. If Tails is launched by it, he will be forced to fly forward at a speed of 4 pixels per frame for about 128 frames.

Improperly programmed blocks and objects

There are a few blocks and objects that have attributes they should not have.
  • Spinning yellow walls: In the first two areas, Tails can pass through the spinning yellow walls while they are perpendicular to the screen. The walls in the fifth area are programmed correctly and cannot be passed unless they are parallel to the screen.
  • :| block: In the Training Area, this block is not solid. You can only reach three of them, but one of them just has solid blocks behind it and the other two do not save time.
  • Bottom-left corner block: One of the corner blocks in Rail Canyon is not solid. Tails flies through it between frames 7,638 and 7,648 in this run. (It might look like the effect of mercy invincibility, but it is not.)
  • Blue arrow block: In Metal Island, the blue arrow blocks that catapults are on are not solid like they are in other areas.
  • Top-right corner block: The top-right corner of the yellow propeller things in Metal Island can be destroyed. Destroying it has no effect on its solidity. (You can see a picture of it in the "Screenshot suggestions" section.)
I did not find any others, but I also did not check every single block. Who knows what other errors there might be?

Off frames

For some reason, most things in this game only update two out of every three frames. Most things seem to consistantly skip every third frame, but the frames when input does nothing often occur one frame sooner or later. It is sometimes possible to change the frames when input is accepted by changing directions on different frames.
If you watch this run with input display turned on or open the movie file in a hex editor, you will see that I demonstrate input not being accepted during the beginning of the first area and at some point in the final area. I tried to place the pseudorandom inputs inside large periods of unchanging input so that it would not obscure anything.
Incidentally, this is also what causes the YouTube, Viddler, and Dailymotion videos to look so choppy -- when the screen updates 40 out of 60 frames per second it is not very noticible, but when it updates 20 out of 30 frames (or worse!) it becomes a problem.

Time chart

Training Area31540:52.57
Rail Canyon49141:21.90
Ruin Wood52491:27.48
Metal Island49601:22.67
Dark Castle54821:31.37
I timed each area from the first input on the "Ready?" screen to the final input on the "Area Cleared!" screen.

Stage Comments

Training Area

  • 1110: This is the best angle I could grab the minecart at without crashing.
  • 1700: Unfortunately, boosting past the first spinning wall makes this one spin later, so I have to slow down longer than normal to get past it.
  • 1995 & 2044: These are the first two :| blocks. I wobbled up and down as I passed through them to make it look like a more interesting glitch.
  • 2420: The other :| block is above Tails here. I first discovered it when I was playing around and was too high to fly down, so I tried to fly into the wall to start over and wound up going through part of it.
  • 3185: Flying up when you reach the end of this area saves 3 frames for some reason. (Conversely, flying down wastes 3 frames.)

Rail Canyon

  • 4553: There are normally three enemies here, but I was going so fast that destroying one made the others not appear.
  • 5365: It is possible to finish this area by collecting the single candy here instead of the double candy earlier, but that would mean missing at least one enemy here.
  • 6185: I did not need to flip this switch, but I did anyway to show how big its hitbox is.
  • 6335: It removed the wall that used to be under Tails here, if you were curious.
  • 7460: It is 1 frame faster to be thrown into the spiked ball by the second pole here, but it puts Tails in bad position to get by the next spiked ball and ultimately wastes time.
  • 7640: This is the bottom-left corner block. Tails is actually as close as he can be to the next block without hitting it.
  • 7979: Fockewulf has 20 HP. His bombs do 8 damage if you throw them back at him. I found that the best damage strategy is 5/3/8/4.
  • Frames spent against Fockewulf: 461. (I timed each boss fight from the frame their health was set to the frame the HUD disappeared.)

Ruin Wood

The music in the first half of this area is my favorite song in the game. Too bad it changes halfway through.
  • 8965: It is possible to get hit by this spiked ball and fly through the ground instead of slowing down later on, but it is slower.
  • 11714: Tails is not high enough to get the best boost possible from this minecart, so this is the best angle I could get.
  • 13156: Bearenger has 26 HP. The best damage strategy I could find is 5/3/3/3/1/3/1/3/4.
  • Frames spent against Bearenger: 631.

Metal Island

It is possible to clear this area without ever pressing up, so I tried to avoid pressing up unless it would waste time or cause me to miss an enemy.
  • 14990: Clouds like this one make it hard to tell exactly where the things behind them are, but I am sure that I grabbed this catapult on the earliest possible frame.
  • 15433: If I grab the pole above Tails here, there is no way to avoid spinning around the next one.
  • 15608: Here is the first of the top-right corner blocks. I broke as many of them as I could without wasting time.
  • 15715: I was not able to hit that enemy and this block, so I chose to hit the enemy.
  • 16451: Another top-right corner block.
  • 16545: It is not possible to spin off of the pole far below Tails here and get above the next obstacle without slowing down.
  • 16691: Another block.
  • 17106: I delayed pressing right in order to avoid this weight without spinning the Ring. Tails changes to his slow flying animation for two frames, but it is not actually any slower.
  • 17371: This is the last top-right corner block in the area, but it is the first one I discovered. I found it when I accidentally flew into it with invincibility.
  • 18152: Carrotia has 32 HP. Her kisses do 8 damage if you smack them back at her. My damage strategy for her is 5/3/5/8/3/1/3/4.
  • 18257: I could throw another 3 damage Ring here, but then Carrotia would fly away because Tails is too close. Not only would it delay her kiss attack, but it would also put her too far ahead to throw into anything at the end of the fight.
  • Frames spent holding up: 539
  • Frames spent against Carrotia: 693

Dark Castle

  • 19900: The switch I flipped a moment ago removed a wall that was blocking this path.
  • 20720: I could have done something other than fly straight to the right here, but I wanted to demonstrate how easy this part really is.
  • 23000: The second switch removed a wall that was blocking this path.
  • 23254: The spinning walls in this stage are programmed correctly, so I had to wait for them to finish spinning before I could pass them.
  • 23339: It is possible to get hit by one of these enemies and fly through the next set of spinning walls, but I would have to slow down to get hit near the wall and it takes too long to recover.
  • 23495: It is possible to get a boss from this weight because I have to slow down anyway.
  • 23719: Witchcart has 32 HP. The damage strategy I used against her is 5/3/3/3/3/3/1/3/4/4.
  • 24130: I could end the movie after this frame and the game would still finish, but it would take longer. (Especially the final score tally, which would take more than three times as long.)
  • 24142: I forgot to hex out the unnecessary inputs at the end of this fight. (Not that it really matters, but it bothers me a little.)
  • Frames spent against Witchcart: 705

Other Comments

120 frames could be saved by using stage select to choose the first area instead of waiting at the title screen, but I was told not to do that. Other than that and paying better attention to lag reduction, I have no ideas for how to improve this run.

Screenshot suggestions

adelikat: Congratulations on having the first accepted Game Gear submission :)
ShinyDoofy: I'll process this...

Last Edited by Kumquat on 10/29/2009 9:17 AM
Page History Latest diff