If you appreciate the work done within the wiki, please consider supporting The Cutting Room Floor on Patreon. Thanks for all your support!

Tails Adventures

From The Cutting Room Floor
Jump to navigation Jump to search

Title Screen

Tails Adventures

Also known as: Tails Adventure (US/EU box art), Tails' Adventure (Sonic Generations list of Sonic games)
Developer: Aspect
Publisher: Sega
Platform: Game Gear
Released in JP: September 22, 1995
Released in US: November 11, 1995
Released in EU: September 1995
Released in AU: June 20, 2013 (3DS Virtual Console)


CodeIcon.png This game has unused code.
DevTextIcon.png This game has hidden development-related text.
EnemyIcon.png This game has unused enemies.
GraphicsIcon.png This game has unused graphics.
MusicIcon.png This game has unused music.
DebugIcon.png This game has debugging material.
LevelSelectIcon.png This game has a hidden level select.


One day Tails decided to go fight a bunch of ducks for some reason, resulting in Tails Adventures, his last solo game (obscure Japanese cell phone titles aside) and hands-down his best … though that's not much of a statement considering the competition. Fortunately it's a pretty nice game in its own right, blending exploration and inventory-based puzzles with somewhat more conventional Sonic elements.

Debug Features

Level Select

Tailsadv levelselect.png

The game contains a fully functional level select, but no method of accessing it. Based on how other code works, it was probably meant to appear just after the title screen fades out. It works like a standard level select: choose a level with the D-Pad and press Button 2 to start it. It's not terribly useful since Tails always starts with the default inventory and HP total, though.

Download.png Download Tails Adventures level select patch
File: tailsadv_levelselect_patch.zip (info)

This patch restores the level select to more-or-less working order. To run it, simply choose "New Game" on the title screen. Note that this breaks some other functions like the Continue option, so don't try to do a full playthrough on it or something.

"Flight Time"

Tailsadv tilemap-flighttime.png

This text was part of a debug menu at some point, but all that's left is the tilemap. It might have been used to set the maximum flight time, or to view Tails' three flight animations.

Error Handler

Tailsadv errorhandler.png

The game contains a basic error handler routine, nearly identical to the ones in other Aspect Sonic games, at ROM 0x70. When run, it tries to print the text "ERROR" to the screen, waits for three seconds, then resets the game. It's not terribly useful since no code calls it in the final game, and the error message is only legible if an ASCII font already happens to be loaded to VRAM $2400.

Graphics

Tails

Graphic Notes
9 blue dots This little speck's graphics and sprite mappings appear between two frames of Tails' "playing in the dirt" idle animation, so it may have been meant to appear as part of it; the animation has Tails mime throwing something over his shoulder, and this might have been meant to be the thrown object.
[dated political joke] The Sea Fox's turning animation has a second "drilling" frame that would make it consistent with the standard Sea Fox sprites, but it isn't used.
up and down and all around The Sea Fox tilting up and down at intermediate angles. These may or may not have been intended for the unused underwater currents.
In-Game Fixed
Toejammin' Bomber man

Due to an error in the graphics definitions, four of the tiles for the last frame of Tails' animation for throwing a bomb while jumping are not loaded, causing him to briefly sprout a third leg every time he does so. To fix this, change ROM 38DEF from 06 to 08.

Remote Robot

Graphic Notes
Blink and you'll miss it The Remote Robot blinking. Probably meant as an idling animation.
Stare into the void The Remote Robot's eyes glowing...for some reason. The animation here is somewhat conjectural, but the frames appear in this order in the game's data.

Enemies

Graphic Notes
It kinda looks like the birds from Sky Chase Zone, don't you think? The bird-missile-thing that appears in a single area of Lake Rocky has a second, unused frame apparently intended to make it look a bit nicer in motion.
I hear they don't call it "Podoboo" anymore This lava plume is programmed to show briefly whenever a jumping lava object is about to trigger. It can't normally be seen because all the game's jumping lava objects are placed too low, causing the effect to get covered by the foreground.
Dynamite duck Battle Kukku XVI standing around and laughing. He's airborne throughout his boss fight, so this isn't used.

Levels

Graphic Notes
ULUL These arrows appear in the Polly Mountain graphics, but aren't assigned to any metatiles. They may have been used as a debugging aid during development to visually indicate the direction of the invisible air currents used throughout the level.
RLUD A similar set of arrows in the Lake Rocky graphics. Most likely used to mark the ultimately-unused underwater currents.

Miscellaneous

Graphic Notes
No, it's not a mini Egg Capsule, probably This vaguely mechanical-looking thing is part of the graphics for the pushable boulder and always loaded along with the regular set. It was almost certainly intended as a "reskin" of the boulder for mechanically-themed levels, but none of the game's boulders (all three of them!) make use of it, not even the one in Coco Island. Changing ROM 7064E from EA to EE will make the boulder in Poloy Forest's first map use this appearance.
This says "missile"

Wow, so does this!!

The game displays one of these labels (depending on the console region) when the Vulcan Missile item is picked up. However, that can normally never happen because the player has the Vulcan Missile from the start of the game.

Metatiles

Most tilesets define some metatiles that aren't used in any level. In some cases this is mundane; for instance, most levels have metatiles for spikes facing in all possible directions with two possible backgrounds, but only use a subset of them. Others are a bit more interesting, though.

Note that for tilesets used in multiple levels with different palettes, only metatiles not used with any palette are listed.

Graphics Notes
Tailsadv tileset-0-tile-51.png Tailsadv tileset-0-tile-60.png Tailsadv tileset-0-tile-61.png Tailsadv tileset-0-tile-65.png Tailsadv tileset-0-tile-70.png Tailsadv tileset-0-tile-71.png Tailsadv tileset-0-tile-72.png Tailsadv tileset-0-tile-74.png

Tailsadv tileset-0-tile-79.png Tailsadv tileset-0-tile-85.png Tailsadv tileset-0-tile-87.png Tailsadv tileset-0-tile-88.png Tailsadv tileset-0-tile-89.png Tailsadv tileset-0-tile-97.png Tailsadv tileset-0-tile-98.png Tailsadv tileset-0-tile-106.png

Tailsadv tileset-0-tile-178.png Tailsadv tileset-0-tile-179.png Tailsadv tileset-0-tile-219.png Tailsadv tileset-0-tile-220.png Tailsadv tileset-0-tile-233.png Tailsadv tileset-0-tile-248.png


Tailsadv tileset-0-tile-99.png Tailsadv tileset-0-tile-100.png Tailsadv tileset-0-tile-101.png

Poloy Forest, Caron Forest, and Green Island. Some unused slopes and spikes, and a few background tiles.

The three "large tree" metatiles at the bottom are particularly interesting – they're actually assigned the "destroyable only by Large Bomb" behavior, which isn't used in any of these areas.

Tailsadv tileset-1-tile-24.png Tailsadv tileset-1-tile-25.png Tailsadv tileset-1-tile-49.png Tailsadv tileset-1-tile-50.png Tailsadv tileset-1-tile-52.png Tailsadv tileset-1-tile-53.png Tailsadv tileset-1-tile-60.png Tailsadv tileset-1-tile-61.png

Tailsadv tileset-1-tile-62.png Tailsadv tileset-1-tile-63.png Tailsadv tileset-1-tile-65.png Tailsadv tileset-1-tile-68.png Tailsadv tileset-1-tile-69.png Tailsadv tileset-1-tile-70.png Tailsadv tileset-1-tile-71.png Tailsadv tileset-1-tile-85.png

Tailsadv tileset-1-tile-101.png Tailsadv tileset-1-tile-214.png Tailsadv tileset-1-tile-215.png Tailsadv tileset-1-tile-216.png Tailsadv tileset-1-tile-217.png Tailsadv tileset-1-tile-218.png

Volcanic Tunnel and Cavern Island. Lots of slope variations that ended up being unnecessary here.
Tailsadv tileset-2-tile-11.png Tailsadv tileset-2-tile-24.png Tailsadv tileset-2-tile-25.png Tailsadv tileset-2-tile-66.png Tailsadv tileset-2-tile-68.png Tailsadv tileset-2-tile-69.png Tailsadv tileset-2-tile-70.png Tailsadv tileset-2-tile-71.png

Tailsadv tileset-2-tile-74.png Tailsadv tileset-2-tile-75.png Tailsadv tileset-2-tile-99.png Tailsadv tileset-2-tile-100.png Tailsadv tileset-2-tile-102.png Tailsadv tileset-2-tile-109.png Tailsadv tileset-2-tile-111.png Tailsadv tileset-2-tile-188.png

Tailsadv tileset-2-tile-189.png Tailsadv tileset-2-tile-225.png Tailsadv tileset-2-tile-226.png Tailsadv tileset-2-tile-235.png

Polly Mt. 1.
Tailsadv tileset-4-tile-22.png Tailsadv tileset-4-tile-24.png Tailsadv tileset-4-tile-28.png Tailsadv tileset-4-tile-39.png Tailsadv tileset-4-tile-70.png Tailsadv tileset-4-tile-71.png Tailsadv tileset-4-tile-191.png Tailsadv tileset-4-tile-231.png Lake Rocky, Lake Crystal, and the Remote Robot transformation cutscene.
Tailsadv tileset-5-tile-41.png Tailsadv tileset-5-tile-42.png Tailsadv tileset-5-tile-46.png Tailsadv tileset-5-tile-47.png Lake Rocky boss. These look similar to some used tiles, but are shifted around a bit, indicating the ship may have had a different layout in earlier versions.
Tailsadv tileset-10-tile-66.png Tailsadv tileset-10-tile-67.png Tailsadv tileset-10-tile-68.png Tailsadv tileset-10-tile-69.png Tailsadv tileset-10-tile-70.png Tailsadv tileset-10-tile-71.png Tailsadv tileset-10-tile-101.png Tailsadv tileset-10-tile-107.png

Tailsadv tileset-10-tile-109.png Tailsadv tileset-10-tile-111.png Tailsadv tileset-10-tile-136.png Tailsadv tileset-10-tile-137.png Tailsadv tileset-10-tile-140.png Tailsadv tileset-10-tile-198.png Tailsadv tileset-10-tile-201.png Tailsadv tileset-10-tile-202.png

Tailsadv tileset-10-tile-216.png Tailsadv tileset-10-tile-219.png

Coco Island and Battle Fortress 2.
Tailsadv tileset-11-tile-21.png Tailsadv tileset-11-tile-78.png Tailsadv tileset-11-tile-79.png Tailsadv tileset-11-tile-210.png Tailsadv tileset-11-tile-218.png Tailsadv tileset-11-tile-235.png Tailsadv tileset-11-tile-240.png Tailsadv tileset-11-tile-241.png

Tailsadv tileset-11-tile-242.png

Battle Fortress 1.

Lives System

The game originally used a lives system much like other Sonic titles. Most of the programming for it is still in the game, and in fact is still partially active! RAM $D2AF stores the number of lives the player has left. When Tails dies, that counter is decremented, and the Game Over screen triggers if it reaches zero. In the finished game, $D2AF is always set to 01, causing a Game Over no matter what.

Similarly, the Game Over screen was supposed to have "Continue" and "Quit" options. The orphaned code for choosing Continue remains at 0x108D; it resets the lives counter to 3 and reloads the last area with Tails' HP restored to whatever it was when he got there. Although the code for the menu itself seems to have been removed, the graphics and tilemaps for its components remain (but weren't translated):

Graphic Description
Tailsadv tilemap-continue.png つづける

Continue

Tailsadv tilemap-quit.png もうやめる

Quit

Tailsadv tilemap-larrow.png Tailsadv tilemap-rarrow.png These arrows would presumably appear on either side of the selected option.
(Translation: Joe)

It's also worth noting that one of the game's music tracks, a short continue screen-like tune, can only be heard by using the Radio item's cut-down sound test. Considering all the other tracks that play on the Radio are used normally, it seems quite likely that that music was originally meant to be used on this screen.

Cannon Rotation

Tailsadv cannon-flip.gif

In the final game, the Wrench item has only one use: switching the direction of the conveyor belts in Battle Fortress. It actually has one other function, though: If Tails uses it while standing on one of the cannons in Coco Island, the cannon will temporarily flip to face the other direction, complete with an otherwise-unused animation. It will turn back around after a few seconds, so it's not really clear how this was supposed to be useful.

This behavior is fully implemented and works just fine, and it can be seen if you re-enter Coco Island with the Wrench in your inventory (normally you're unable to select it on the map once you unlock Battle Fortress, but it can be reached if you take the same path through Lake Rocky again). The cannon graphics are also loaded into the VRAM on Battle Fortress, so some cannons were almost certainly supposed to appear there, but ultimately didn't.

Sea Fox Water Currents

Cavern Island contains a few water currents that push Tails around in various directions. These currents aren't programmed to affect the Sea Fox, but apparently someone neglected to tell the map designer this, as the metatiles that the "water current" behavior is assigned to also appear in several parts of Lake Rocky. Their placement reveals that the Sea Fox areas were meant to be a bit more challenging than they wound up being.

Appearance Behavior
Tailsadv map 6-2 index-15 visual.png Tailsadv map 6-2 index-15 behavior.png

The mines in this part of map 2 would have been trickier to avoid with the currents interfering.

Appearance Behavior
Tailsadv map 6-2 index-15 visual-2.png Tailsadv map 6-2 index-15 behavior-2.png

Using the Mine weapon to get through the barrier to the path to Coco Island was meant to be a lot more troublesome, likely requiring mutiple passes through the mine-filled circular current.

Appearance Behavior
Tailsadv map 6-5 index-18 visual.png Tailsadv map 6-5 index-18 behavior.png

The Extra Armor-requiring trek to Coco Island has some currents to force Tails through the longer, more dangerous path in map 5.

Appearance Behavior
Tailsadv map 6-5 index-18 visual-2.png Tailsadv map 6-5 index-18 behavior-2.png

The "trap" room has some currents to make escape more difficult. Not that it matters, since without invincibility Tails will probably be long dead by that point in the level. Note the quite badly misplaced cannon objects on the right.

Appearance Behavior
Tailsadv map 6-6 index-19 visual.png Tailsadv map 6-6 index-19 behavior.png

The final run up to Coco Island in map 6 also has some currents to make it a one-way trip.

Appearance
Tailsadv map 6-8 index-21 visual.png
Behavior
Tailsadv map 6-8 index-21 behavior.png

On the path toward Lake Crystal in map 8, these currents would have created a point of no return. They also explain the presence of the odd ring-filled room: it was meant to be a reward for pulling out of the current at the right moment.

Appearance Behavior
Tailsadv map 6-9 index-22 visual.png Tailsadv map 6-9 index-22 behavior.png

In the lead-up to the Lake Crystal exit, this current would have automatically ejected Tails toward the surface, and also directly into some mines unless the player reacts in time.

Inaccessible Polly Mt. 2 Warp

Tailsadv mtpolly2-1-warp.png

In Polly Mt. 2, Tails can normally fall from the hole in the second map down to the first map, but can't go back up the hole due to a wind current. Despite this, a warp object leading to the second map exists, though it's unreachable.

Tailsadv mtpolly2-2-spawn.png

The warp leads to this poorly-placed spawn point on the second map. Even if it wasn't embedded in the wall, using it would make Tails fall back into the first map immediately after spawning.

Instadeath Tiles

Metatile behavior 0x05 is an unused (not assigned to any metatile) "instant death" effect. When set on a metatile, touching it causes Tails to die immediately, no matter how much health he has left. Probably removed for being very cheap, perhaps in part because of the removal of the lives system.

Effects 0x0D and 0x0E

Levels in Tails Adventures can be assigned up to four "effects". Generally, an effect is something like a cycling palette or split-screen scrolling. Effects 0x0D and 0x0E are set on the first and second areas of Battle Fortress 1, respectively; however, they've been dummied out of the final game.

When a level starts with effect 0x0D on, the game calls the routine at 0x5522 with a parameter of 0x0080. That routine has been replaced with a ret in the final game, so nothing happens, and the effect then proceeds to turn itself off. Effect 0x0E is almost identical, except it instead calls 0x5523 (another dummied routine) with a parameter of 0xFF80.

Based on this, and the fact that these effects are assigned to Battle Fortress 1, it's plausible to speculate that the effects were originally commands to trigger autoscrolling – 0x0D for horizontal, 0x0E for vertical. The layout of the Battle Fortress 1 maps is clearly conducive to such a setup, and it's pretty apparent that the first map in particular was designed with different mechanics in mind (it can be cleared in minimal time and without taking damage simply by not pressing any buttons). Assuming the effects were for autoscrolling, the parameter 0x0080 would then indicate a scrolling rate of 0x80 subpixels per frame to the right (i.e. a pixel every second frame), and 0xFF80 would indicate 0x80 subpixels per frame upward.

Demo Playback

The game contains code for a basic "demo playback" mode in which the player's input will be replaced by a sequence of button presses, but this isn't actually used for anything.

Every frame, after getting the button press information for the current frame, the game checks if bit 3 of $D2A4 is set. If it is, then the game reads two bytes from the location whose ROM bank is given by $D2EE and whose CPU address is given by $D2EA-D2EB (with the address incremented by two after the read). The first byte read replaces the buttons currently pressed ($D13A), while the second replaces the buttons triggered this frame ($D14A).

This is most likely a generic engine leftover from other Aspect Sonic titles, most of which play demos at the title screen.

Music

The ending music cuts out 12 seconds in, but the full track runs to over half a minute.

The game also contains three dummy tracks (IDs 0x91, 0x96, and 0x99) which consist of nothing but an "end of track" command for all four sound channels.

Text

GG TAILS ADVENTURES < Ver1,02 > 1995/07/21 @SEGA/Aspect Co.,Ltd

As with all of Aspect's 8-bit Sonic (or Tails, as the case may be) games, this one has some semi-standard header text at 0xC0 that gives the name of the game, version, build date, and some basic copyright information.

Miscellaneous

  • The game devotes a byte in RAM ($D034) to the number of slots in the inventory (minus one). It then uses this value to decide where to "wrap" the inventory when the player switches between items. However, the variable is set to 0x03 in the new game initialization code and is never touched afterwards. Most likely, the original idea was to use this to prevent empty slots from showing up in the inventory – that is, to start this at 0x00 and increment it when the player picks up items. This wouldn't play very nicely with the equipping system used in the final game, which is probably why it was scrapped.
  • The game uses RAM $D2D5 to store the ID of the object to spawn in the "player" slot when a level starts. However, that location is initialized to 0x01, the ID of the Tails object, and never changed afterward. This might be a leftover from other Aspect Sonic titles, some of which have multiple player characters. It's also possible the Sea Fox was meant to be implemented as a separate object from Tails at one point (substates of the regular Tails object are used instead).
  • During the second part of the intro, Tails is programmed to flip back and forth as though looking around after he wakes up. However, the scene normally changes before the looking-around animation can play. To see this, change ROM 0x29E1 to 0x04 to make the cutscene last longer. (This will also cause Tails to go back to sleep after looking around, but that's just a side effect of the game's scripting system – all the game's animations loop unless otherwise specified.)
  • In general, every "warp" leading to another level or the world map has a corresponding "spawn point" assigned somewhere nearby, allowing Tails to start the level near that warp. However, some of these spawn points are totally inaccessible; e.g. there is a spawn point placed just after the Poloy Forest boss (corresponding to the warp back to the world map), but there is no way to start the level from there. This holds true for most levels with a one-way exit to the world map.
  • The world map is assigned some uniquely defined "level" data that isn't used in gameplay, although it is loaded whenever the world map is. However, it's just a copy of the bottom part of Polly Mt. 1, map 2, followed by null metatiles.
  • All maps of Polly Mt. 1 except the boss arena load the boulder graphics to VRAM, but none of them have a boulder object in them. Similarly, Lake Rocky loads a right-facing version of the "bird missile" graphics, but the "bird launcher" object always fires to the left.
Hmmm...
To do:
Quite a few palettes seem to be unused, but I haven't checked thoroughly.