E02 Sonic the Hedgehog Game Example v 12.11.13
Introduction
What's New
License
Points of Note
Frequently Asked Questions
Example File Structure
Introduction:
The files contained in this example are excerpts from the fileset for the E02 Fan-Game "Sonic the Hedgehog: Project Mettrix".
The example was created as a means by which other E02 users can create a similarlarly-functional Sonic the Hedgehog game, or a tool for or example of creating a relatively complex game project using E02.
Note: E02 is not a "Sonic the Hedgehog Engine". This example, also referred to as "Mettrix Engine", is a "Sonic the Hedgehog Engine" created using E02 Multi-Purpose Game Engine.
The Sonic the Hedgehog look and gameplay contained herein are created entirely by the scripts and data that make up "Mettrix Engine".
This example's features include the following:
- Simple and complex Script Command usage; many short and long Functions using beginner and advanced Script Commands and techniques
- Table File usage
- Three distinct, complex Player Characters, demonstrating Character Common Functions, "Movement Modes", Player Input, and Player Animation -
- Fully-Featured Sonic 3-style Sonic
- Fully-Featured Sonic 3-style Tails
- Fully-Featured Sonic 3-style Knuckles
- Player state/ability-affecting Powerups and Items -
- Many simple and complex Game-Global and Zone-Specific Game Objects available for use, demonstrating Scripted Animation, Collision, Debug Drawing, Debug Placement, and Movement -
- Global Sonic 3-style, Green Hill Zone, Labyrinth Zone, and Custom Objects
- Title Screen -
- An example Title Screen inspired by the original "Sonic the Hedgehog". Demonstrates title display prior to (and after) gameplay
- An example "Cheat Code" (perform the Sonic 1 Level Select cheat while the Title Screen is running)
- An example cheat-enabled, list-style "Level Select" menu with functional Sound Test option
- Level, Game Mode, and Character Select Menu -
- A stylized graphical menu system for selecting starting level, play mode, and player character(s) before starting gameplay
- Gameplay levels -
- Interactive Game Objects placed throughout as Enemies, Obstacles, and Items/Powerups
- Special displays such as TitleCard and HUD
- Triggerable proper level-end events
- Available two-player cooperative and competition modes
- Three "Zones" with a total of six individual levels
- Test Zone (one "act")
- Short, original level layout designed to demonstrate accurately-reproduced and enhanced Sonic the Hedgehog physics
- Level "Sentry" Functions that create manually-controlled background movement and effects
- "Tiled Level Objects" in the form of collapsing platforms
- Green Hill Zone (three "acts")
- The original Sonic the Hedgehog's Green Hill Zone, re-created in its entirety as an example of the level of faithfulness to source material that can be achieved
- Green Hill Zone, re-created in its entirety as an example of the level of faithfulness to source material that can be achieved
- Use of standard automatic background parallax scrolling
- Use of "Boundary Events" to manage varying level height
- "Tiled Level Objects" in the form of collapsing platforms
- Complex, "linked" objects, such as swinging platforms
- Fully-functional Boss encounter
- Automated character movement at the end of a level
- Level-to-level fade-out progression
- Gemstone Garden Zone (two "acts")
- Original level layout designed to demonstrate standard Sonic the Hedgehog gameplay
- Graphics from "PlaySega", using a higher number of colors than those found in the original Sonic the Hedgehog games
- Use of standard automatic background parallax scrolling
- Level "Sentry" Function that augments background movement and effects
- Multi-layered background for greater sense of depth
- Two-background swapping that creates the effect of "exterior" and "interior" level areas
- Level Palette switching to effectively provide greater color depth to the level
- Use of "Boundary Events" to manage varying level height and background/palette state
- Underwater sections to exhibit re-created Sonic the Hedgehog "underwater" physics and mechanics
- "Tiled Level Objects" in the form of collapsing platforms
- Complex, "linked" objects, such as swinging platforms and enemies/bosses with separate moving parts
- Two Fully-functional Boss encounters
- Character "victory pose" at the end of a level
- Object "Projectile" collision with other objects in the form of a "goal sign" object that can trigger hidden underground "monitor" objects
- "Level Chaining" event sequence triggered after the completion of the first "act" to give the illusion of smooth progression from level to level
- Bonus levels -
- Bonus level entry activated during standard level gameplay
- Level state retention; upon bonus level exit, standard level gameplay is resumed from the state in which it was left (with bonuses applied when applicable)
- Level "Sentry" Functions that create manually-controlled background movement and effects
- Two distinct bonus level types
- Bonus Stage
- Vertical gimmick-based layout
- Very slightly-modified player physics, achieved through Player Variable manipulation during level start
- Prominent use of moving "Tiled Level Objects"
- Level items retained upon entry, bonus items retained upon exit
- Special Stage
- Randomly-generated layout based on pre-defined structures and "difficulty level"
- Level region looping
- Scripted timer events, including difficulty increase and gameplay-based notification messages
- 12 "Status Objects" -
- Title Screen
- List-based Level Select Cheat Menu
- Graphical Level, Play Mode, and Character Select Menu
- TitleCard
- In-level and Bonus/Special Stage Heads Up Displays (HUDs)
- Level-Out and Special Stage-Out Score Countdown Sequences
- Special Stage Goal and Warning Messages
- "Game Over"/"Time Over" Event
- Continue Screen
- 2P Competition Mode Results Screen
- Manual data file read/write -
- Demo recording and playback (Hold "B Button" when selecting level on list-style level select screen to record. Demos play in sequence from Title Screen)
What's New:
Some of the changes listed below do not necessarily apply to the gameplay content of this example, but rather to the underlying engine and the expanded functionality that can be made use of in derivative games.
* Release 12.11.13
- Updated in conjunction with Project Mettrix release 12.11.13
- All Scripts have been updated to make use of Alias Names, Keywords/Expressions, Directives, named Labels, and various other features available as of E02 release 12.??.??. This has greatly improved usability
- Tails and Knuckles are now included as playable characters
- The complete Green Hill Zone, as shown in earlier Project Mettrix demos and featuring all level events, objects, and boss, is now included. This level is much more suitable as a basis for new levels, as it is does not make use of specialized functions and settings such as those used in "Test Zone"
- "Gemstone Garden Zone", a two-act zone based heavily on the graphics from the "PlaySega" online Flash editor/game, which uses a greater number of colors than those from the original Genesis games, and includes two backgrounds, underwater sections, several Labyrinth Zone Objects, two bosses, and a "level chaining" event between acts, and other E02 features not used elsewhere
- A graphic menu system similar to the one used in earlier Project Mettrix demos is now included, and serves as Level- and Character-Select in-game. This also provides immediate access to the already-present 2P Co-op and Competition modes
- A Sonic 1-style Level Select/Sound Test screen is now included, and is accessible in-game by inputting the Sonic 1 Level Select code during the Title Screen
- A toggle flag has been implemented to switch level-end behavior between Sonic 3/Project Mettrix style (Character stays on-screen), and Sonic 1/2 style (character is forced to run off-screen)
- Special/Bonus Stage entry via Giant Ring has been implemented. The current level's state will be saved upon entry, and restored upon exit
- Bonus/Special Stage entry via StarPost has been implemented. The current level's state will be saved upon entry, and restored upon exit
- A Special Stage with randomly-generated layout and 8 difficulty levels (7 Chaos Emeralds + 1 extra) has been added
- A Bonus Stage for collecting extra rings and items has been added
- Demo recording and playback have been implemented
- When one player crosses the signpost in Competition Mode, a timer now starts that gives the other player only 60 seconds to reach it
- A Results Screen has been added to the end of any level played in Competition Mode to declare the winner in each of the same 5 categories used in Sonic 2
- Character "Super States" have been implemented
- Mid-gameplay changes to player character speed are now handled by a single function, which calls on a unique table for each character that contains lists of that character's velocity/acceleration/etc values under various circumstances. This both provides greater control over the characters' stats, and reduces chances for error when gameplay conditions change. This has also reduced the number of "Constants" used by each character from 22 to 15
- Mid-level music "restoration" due to changes in powerup/drowning/boss/super states is now handled by a single function
- Spindash screen lock has been made to function more like the original- instead of being position-based, release of the lock is now based on a timer, whose value is based on the speed of the dash
- When one player completes a level in competition mode, a 1-minute timeout timer now starts for the other player
- Underwater players now spawn small bubbles and drowning countdown numbers
- "Running 2 Animation" handling is now actually implemented
- When a player strikes a wall in midair while walking/running or spinning, his animation speed is now reset to its minimum
- Animals released from an end-level Capsule will now change priority to display in front of the capsule when escaping (they "jump out of it")
- Any low-quality WAV music used during normal gameplay has been replaced with high-quality OGG Vorbis
*BugFixes*
- Triggering a shield move and losing the shield on the same game frame would cause a crash, due to the shield attempting to read its animation list after having already set its type to 0 (to destroy itself). This has been corrected
- "Skidding Deceleration" was incorrectly being applied to a player on the first frame of left/right input due to a bad test in the input functions, causing them to start with a vector velocity equal to the character's skidding deceleration plus his acceleration. This has been corrected, and the player now begins movement with a vector velocity equal to his acceleration
- Players were incorrectly able to spin when they reached a vector velocity of 128 (which, in conjunction with the bug listed above, allowed them to spin immediately on the first frame of movement). The value and condition have been updated for correct behavior, only allowing the player to spin once his vector velocity has exceded 256 (until then, pressing down will only cause him to duck)
- In 1P Mode, death by time-over would not lock the screen, and instead, the screen would follow the player all the way to the bottom of the level. This has been corrected
- The Ring Object was mistakenly set up to use the Built-in Debug Placement Function in conjunction with its own special Scripted Debug Placement Function, effectively causing two rings to be placed in the position of the first Ring in any placed set. This has been corrected and the set will now be placed properly, with only one Ring at each of the displayed positions
- There was a miscalculation in the function used to rotate the invincibility stars around the object center. This has been corrected
- The line scroll background effect in Test Zone, now moved to the menu, would reset the scroll offset before a complete pattern re-synch was achieved. The pattern is now completely re-aligned before the offset is reset, giving the illusion of continuous scrolling
* Release 11.01.01
- Updated in conjunction with Project Mettrix release 11.01.01
- As in the originals, jumping from spinning along the ground now disables horizontal input while in the air, unless a special move is performed
- Noted original game's "attracted ring" velocity values in contrast to Mettrix's looser "slingshot-style" values
- Fixed the "I forgot what this is..." comment. The section applies downhill gravity force when standing on a sloped surface
- Skidding deceleration value was half of what it should have been; it has been corrected
- The original Mettrix spindash only allowed 8 charges and did not lose strength over time. It now functions as in the originals; it can be charged more than 8 times (with a potential velocity cap), and slowly loses potential velocity while held. Two new "dashspd?.def" table files have been added along with this functionality, and are now noted in the "Example File Structure" section
- Lightning shield now flashes the underwater palette when it is taken away due to entering the water
- "Underwater Vertical Spring Function" flag has been implemented (velocity cap on water exit, or half-force vertical springs)
- The format of the "Points of Note" section of this text has been modified; each note is now preceded by a brief, bolded, descriptive header
- Two new "Points of Note" have been added to this text: Attracted Ring Velocities and Underwater Spring Force
*BugFixes*
- The underwater air timer was reset before its value was checked to determine whether or not the player had triggered the "drowning" music, causing the counter keeping track of the number of currently drowning players to be decreased every time the player left the water, rather than only when the music was actually triggered. This caused normal music playback not to be restored upon the cancellation of drowning state if a player had already entered and exited the water at least once. This has been fixed; the timers are managed correctly and the music is now restored as appropriate
- The water waves spawn function didn't keep track of and set the wave offset values properly, causing them not to span the length of the screen. The function now sets the appropriate offset for each wave object, and the water surface waves now run the entire length of the screen
* Release 10.12.09
- Initial release, based on updates to Project Mettrix release 10.11.16
License:
This example game and its source materials are purely non-profit and must remain so as they are
based on copyrighted material. Use of well-established Player character, global Game Object, and other source materials
based on content of the original, official Sonic the Hedgehog games to create derivative
games using E02 is allowed under the same conditions under which they were used to create this example game, however,
given that "Project Mettrix" is not a complete and released game, all other materials are presented as example only, and remain property of the development team
producing "Project Mettrix", and are for exclusive use by those individuals in creating the
"Project Mettrix" game. These materials may not be otherwise used until such time that
their origin in "Project Mettrix" has been well-established, meaning that a period of no
less than 1 year must have passed since its completion, or a period of no less than 2
years since the most recent update, or statement of intent to update, unless either
stricter or more lenient terms are explicitly described for any individual content by
the content's author.
As the code is heavily documented, and a highly significant amount of work went into creating, revising, and making
readable this code, the conditions of use apply to anyone using "Mettrix Engine" as a reference
to create a completely separate project by completely separate means just as much as they apply
to anyone using "Mettrix Engine" directly to create a derivative Sonic the Hedgehog game for E02-
Any such projects must bear a label crediting the base scripts or original reference research and
development to "Stealth" of "Organized Chaos", and in some form mention "Mettrix Engine". This consideration will be much appreciated.
A similar condition applies to graphic and sound assets contained herein that were obtained from the original Sonic the Hedgehog game- please credit work in obtaining and original arrangement of these assets to "Stealth" of "Organized Chaos" and "Mettrix Engine".
This license does not cover the E02 program or any other E02 game. Please also read the
E02 license, and the individual license documents for each game, as the terms are different.
Points of Note:
This section lists a few points about successfully editing this example that aren't otherwise entirely obvious -
- Script Formatting
Please pay special attention to the formatting for each part of each Script type. Breaking this format can not only cause descriptive error reports, but can also cause hangups and crashes that display no such reports, because in many cases, it is impossible for E02 to tell that the Script wasn't written that way intentionally. This can be true of errors in Code Logic as well, although these errors can also simply cause undesired results. Test and backup frequently.
- Example as a new game
It is highly recommended that the example be duplicated as another "Game" before being edited, as if it is ever updated, downloading those updates could overwrite some local modifications. The example can be made into another "game" by copying the "Sonic" folder and renaming it, and also copying "sonic.gdf" in the "gdf" folder and renaming it. The renamed gdf must then be edited so that the word "sonic" on the "Path" line is changed to the name of the new Game folder. This will make the Game available in the "Installed Games" list. Also, both "stealth.hapisan.com" and "E02/Sonic/" should be replaced by the word "NONE" (note the capital letters), so that the new Game doesn't attempt to read the original example's update notices. The "Name" field may then be updated to give the new Game a unique name.
- Specialized Background and Palette Control
During Level Init, "Test Zone", the "Bonus Stage", and the "Special Stage call both Functions 3 and 4 from "zone00/zinit.def", "zone06/zinit.def", and "zone07/zinit.def", respectively, to run throughout level gameplay. These functions are responsible for creating the tilting and color cycling effects used in this level's background, and would cause any normal level background/palette to function improperly if not removed when a new level is created and placed directly in any of these "Zone" folders. Removing the calls to or otherwise disabling these functions will restore standard background scroll behavior.
"Gemstone Garden Zone" Function 3 from "Zone02/zinit.def" to produce a slight wave effect in one portion of the farthest Tile Plane in the two-plane "outside" background, as well "Boundary Events" to swap between the "outside" and a one-plane "inside" background at several points during the level, as well as to change which "level palette" is currently being used. To restore basic background and palette operation to "Zone 2", remove the call to Function 3 from "Zone02/zinit.def", as well as all "Boundary Events" in "Zone02/zone.def".
Green Hill Zone uses no special background or palette controls, but does make use of "Boundary Events" to manipulate the height of the level. To restore basic, non-managed level boundary behavior, remove all "Boundary Events" from "Zone00/zone.def".
Folders "zone03", "zone04", and "zone05", contain pre-implemented, "blank" Zones that do not make use of any special background and palette functions that could adversely affect the implementation of a new, basic level. These Zones can be activated in-game by performing the Sonic 1 Level Select Cheat during the Title Screen, and selecting them on the Level Select screen that is accessible when holding "A" and pressing "Start".
- New Acts
Creating new usable Acts for existing Zones is as simple as creating the appropriate data files and Functions, and adding references to these files and Functions to the appropriate "zone.def" file by following the Act setup format described in the Zone Def Documentation. Existing files and data may be copied to the appropriate locations and modified piece by piece if desired. To cause the new level to come up during normal gameplay in this example, the game must be made to switch to this level by using the Set_Level Script Command with the appropriate Zone and Act IDs in the Boundary Event Function that handles the preceding Act's Level-Out event. For "Test Zone", this is Function 4 in "zone00/zinit.def". Obviously, the new Act will require a new Boundary Event and Function to handle its own Level-Out event.
All existing "zone" folders, 00-05, are prepared to accept up to 3 Acts.
- New Zones
Creating new usable Zones for existing games is as simple as creating a new "zone??" folder (where "??" is a number consisting of at least two digits that represents the Zone's ID), creating the appropriate data files and Functions, and creating or modifying a "zone.def" file by following the Zone setup format described in the Zone Def Documentation. Existing files and data may be copied to the appropriate locations and modified piece by piece if desired. To cause the new level to come up during normal gameplay in this example, the game must be made to switch to this level by using the Set_Level Script Command with the appropriate Zone and Act IDs in the Boundary Event Function that handles the Level-Out event for the final Act of the preceding Zone. For "Test Zone", this is Function 4 in "zone00/zinit.def". Obviously, the new Zone's Acts will require new Boundary Events and Functions to handle their own Level-Out events.
Folders "zone03", "zone04", and "zone05", contain pre-implemented, "blank" "Zones" that do not contain any pre-made level data or management Functions. These "Zones" can be activated in-game by performing the Sonic 1 Level Select Cheat during the Title Screen, and selecting them on the Level Select screen that is accessible when holding "A" and pressing "Start", and these folders may be copied before modification to speed up the process of creating new Zones, although the data files will still need to be altered to reflect the new Zone ID.
- Special Object Placement Properties
Some Objects, such as Rings, Monitors, and Springs, have special settings that can't be set by cycling through the Debug Objects List alone. In this example, these Objects use special Scripted Debug Drawing/Placement Functions that read from up to four additional settings- the "Object Property Settings Values" of the Object Editor, where they are normally manipulated while in Object Placement Mode. The keys/buttons that control the first of these value during gameplay are listed in the Key Def Files and in-program key configuration interface as "ID Down" and "ID Up" in "Map 2: Control". Pressing these keys generally causes visible changes in the selected Object if it will respond to this value, such as a single Ring expanding into different patterns of multiple Rings, Monitors changing their content Icons, and Springs changing their pad color and bounce force. Some of these objects have more subtypes than are used in the layout for this example.
- Loops and Crossing Paths
Loops and other crossing paths are made possible by causing the Player to change the ID of the Level Tile Plane with which he will test for collision. This is generally accomplished by using "PlaneSwitch" Objects- a Built-in Collision type that will change the Player's "Player_Solid_Plane" Variable based on the direction in which he is moving, and the left/right Plane IDs given by the Object Constants settings in the definition for an Object Type using the Built-in "PlaneSwitch" Collision. This example defines "PlaneSwitch" objects for standard 4-plane levels that switch between 2 (Primary) and 3 (Secondary), which are used in all included levels, as Game Objects 3 and 4 in "objects.def". Remember that if other levels are created that use planes other than 2 and 3 for crossing-path collision, they will need their own special "PathSwitch" objects set up to accommodate for the new IDs.
- Important Special Level Settings
To set Player Start Position, Primary Collision Plane ID, and the two Animal Object IDs that are chosen between randomly by defeated enemies for each level, this example uses special User Registers to write these values from each Act Init Function, which are in-turn read by the Game-Global generic setup Functions in "funcs/mainfunc.def" that are also called by these Act Init Functions, and are otherwise used by other Functions during level gameplay. These are User Registers 12-16, 123, and 124, and are among those listed in "game.def".
- Attracted Ring Velocities
As a matter of personal preference, Project Mettrix uses smaller values for looser attracted ring movement. In the unmodified example, the values used in Sonic 3 are listed as comments within the Attracted Ring Movement Function (Function 3 in "objects/objmv.def").
- Underwater Spring Force
As a matter of preference, Project Mettrix cuts the vertical velocity value applied by springs in half. The original games leave the value as-is and instead rely on a vertical velocity cap when leaving water to prevent the player from having too much upward momentum when exiting the water after hitting a spring. Bit 5 of User Register 24, "Game State Flags" will toggle between these two states. Setting the flag to (or leaving it at) 0 will cause the original games' spring/water behavior to be used. Setting the flag to 1 will enable Mettrix's spring/water behavior. This flag may be toggled on a per-level basis by setting/unsetting it during any level's Act Init function, or, for Mettrix behavior for the entire game, set it to 1 during any Function run during game init. If the original games' behavior is desired, nothing needs to be done, but if it is toggled on for only certain levels, don't forget to manually set the flag back to 0 for levels where "Mettrix" behavior is not desired.
- Registers Listing
"game.def" contains a listing of all User Registers used by this game.
- Object Types and Functions Listings
Each "objects.def" file contains a list of the Objects that they define that precedes the Object Definitions themselves, and listings of the Scripted Object Functions that they load immediately following the files that those functions are loaded from.
- Script Functions Listings
All files containing Script Functions contain a complete list of those Functions that precedes the Functions themselves.
- Object Variables Listing
Each Game Object Definition in each "objects.def" file contains a list of each "Extra Variable" that is defined for that Object Type.
- Player Constant/Variable Listings
"s3sonic.def", "s3tails.def", and "s3knux.def" each contain a list of each of the Custom Player Constants and Custom Active Player Variables that are used for the Character, as well as names and comments clarifying how each Movement Mode is used.
- Etc.
There may be some considerations that aren't listed here, in addition to extra functionality that exists but is not taken advantage of in this example's example gameplay.
Frequently Asked Questions:
This section lists answers to Frequently Asked Questions -
- "Didn't I see Test Zone in Megamix?"
Yes, this is the same "Test Zone" that's "secretly"-accessible in the 2008 half-release of "Sonic Megamix". Stealth, the lead programmer, is the one that put it there just for the fun of it. He did this about two years after he first created the level for E02 Demonstration 6, released in 2006, following its parent- the original Sonic the Hedgehog test level for E02, which was first released with E02 Demonstration 2 in 2004 and featured the same graphics and similar layout structures.
Example File Structure:
This section is a complete listing of the folders and files included with this example, each with a brief description and reference links.
- /Alias - Alias Files containing Alias Names that are to be made available for use in this game's scripts are stored here. Each of these files is loaded by "alias.def"
- objvars.def - This file contains Alias Names that are meant to reference an Object's "Extra" Variables
- packbutn.def - This file contains Alias Names that are meant to represent the different bitfield entries in a "packed button state"
- params.def - This file contains Alias Names that are meant to represent certain "parameters", such as Player Character Types or "Shield" Types
- pconsts.def - This file contains Alias Names that are meant to reference User-created Player Constants
- pvars.def - This file contains Alias Names that are meant to reference User-created Player Variables
- registrs.def - This file contains Alias Names that are meant to reference User-created Game Registers
- settings.def - This file contains Alias Names that are meant to represent certain "settings" values, such as bitfield entries and states
- sounds.def - This file contains Alias Names that are meant to reference Sound Effect IDs
- tables.def - This file contains Alias Names that are meant to reference Table IDs
- zoneids.def - This file contains Alias Names that are meant to reference certain special Zone IDs
- /art - Art for game-global objects is stored here, as well as the global sprite palette
- globpal.tga - This is the file where E02 expects to find the global sprite palette colors. The palette for this image contains these colors, but nothing else is stored here
- global.spr - This is an E02 "sprite file" containing all global Object graphics in a format usable by E02's Sprite Editor, and which is loaded by "objects.def"
- /chars - Art data, Setup Scripts, and Script Functions for the Player Characters are stored here
- /macros - This folder contains files that house portions of Script Functions that are reused multiple times in Player Character Functions, and used are by means of the Include Directive
- spin.def - This Function Macro performs operations necessary when a Player begins to "spin"
- spinoff.def - This Function Macro performs Player Character and Camera offset operations usually associating with "spinning"
- unspin.def - This Function Macro performs operations necessary when a Player exists "spinning mode"
- common.def - Common Player Character Functions, functions that can be accessed by every Player Character type, are stored here. This file is loaded by "game.def"
- s3knux.def - This is the player character setup file for the "Knuckles" Player Character. This file is loaded by "game.def" as Character 2
- s3knux.spr - This is an E02 "sprite file" containing all graphics for the "Knuckles" Player Character in a format usable by E02's Sprite Editor, and which is loaded by "s3knux.def"
- s3sonic.def - This is the player character setup file for the "Sonic" player character. This file is loaded by "game.def" as Character 0
- s3sonic.spr - This is an E02 "sprite file" containing all graphics for the "Sonic" Player Character in a format usable by E02's Sprite Editor, and which is loaded by "s3sonic.def"
- s3tails.def - This is the player character setup file for the "Tails" player character. This file is loaded by "game.def" as Character 1
- s3tails.spr - This is an E02 "sprite file" containing all graphics for the "Tails" Player Character in a format usable by E02's Sprite Editor, and which is loaded by "s3tails.def"
- /dump - This is where E02 will store any "dump" output files when they are requested from within any of its editors
- (there is nothing here by default)
- /fonts - These files are the data for this game's implementation of the three required default fonts. They are: Font 0- 8x8 Unhighlighted alphanumeric+symbols, Font 1- 8x8 Highlighted alphanumeric+symbols, and Font 2- 4x6 "hex"
- /funcs - This is where the Game-Global Level Event/Sentry Functions are stored
- /music - This is where the Game-Global music files are stored. Each of these files is loaded by "music.def"
- 1up.ogg - This is the music that is played as a "jingle" when the Player earns an extra life
- boss.ogg - This is the music file for the "act 3" / "Green Hill Zone" Boss music
- boss2.ogg - This is the music file for the "act 1" / "Gemstone Garden Zone" First Boss music
- drowning.ogg - This is the music file that is played when a player is "drowning"
- emerald.ogg - This is the music file that is played when a player collects a Chaos Emerald, but it is currently unused
- gameover.ogg - This is the music file that is played when a player loses his last life, and the "Game Over" event occurs, or when the timer reaches 9:59 and a "Time Over" occurs
- invinc1.ogg - This is the first part of a two-part music file for the Player Invincibility music, and functions as the pre-loop song intro
- invinc2.ogg - This is the second part of a two-part music file for the Player Invincibility music, and functions as the looping section of the song
- levelend.ogg - This is the music file that is played when a player triggers the end-of-level score counter event
- sneakers.ogg - This is the music file that is played when a player obtains "Super Sneakers", if the currently-playing level music is not XM. If it is, the existing music simply speeds up
- super1.ogg - This is the first part of a two-part music file for the Player "Super state" music, and functions as the pre-loop song intro
- super2.ogg - This is the second part of a two-part music file for the Player "Super state" music, and functions as the looping section of the song
- /objects - This is where the Game-Global Game Object Script Function files are stored
- /sfx - This is where the Game-Global sound effect files are stored. Each of these files is loaded by "sfx.def"
- airwarn.wav - This is the sound effect file that is played at regular intervals to warn that an underwater Player is running out of air
- alarm.wav - This is the sound effect file that is played as a warning when one player crosses the Signpost object in Competition mode
- bigring.wav - This is the sound effect file that is played when a Player enters or collects a Big Ring
- bonuspnl.wav - This is the sound effect file that is played when a Player activates an invisible score bonus panel (generally placed at the end of a level)
- bosshit.wav - This is the sound effect file that is played when a Player damages a boss
- break.wav - This is the sound effect file that is played when a Player triggers a collapsing platform
- breathe.wav - This is the sound effect file that is played when a Player breathes an air bubble
- bumper.wav - This is the sound effect file that is played when a Player collides with a star bumper. This sound is currently unused
- button.wav - This is the sound effect file that is played when a Player steps on and triggers a button/switch, and for each tick in the end-of-level score countdown
- cashreg.wav - This is the sound effect file that is played when the end-of-level score countdown is complete
- continue.wav - This is the sound effect file that is played when a Player earns a continue. This sound is currently unused
- dash.wav - This is the sound effect file that is played when a Player releases a charged Spindash
- dcharge.wav - This is the sound effect file that is played when a Player charges a Spindash
- drown.wav - This is the sound effect file that is played when a Player drowns
- fireball.wav - This is the sound effect file that is played when a fireball is launched. This sound is currently unused
- fsget.wav - This is the sound effect file that is played when a Player obtains a Fire Shield
- fsuse.wav - This is the sound effect file that is played when a Player activates the Fire Shield's Fire Dash
- gland.wav - This is the sound effect file that is played when a Player lands hard from falling out of a glide. This sound is currently unused
- grab.wav - This is the sound effect file that is played when a Player grabs something, such as Tails carrying another Player while flying, or Knuckles connecting to a wall for climbing
- goal.wav - This is the sound effect file that is played when a Player exits the Special Stage during a winning or losing sequence
- gslide.wav - This is the sound effect file that is played when a Player hits the floor during a glide and begins sliding across. This sound is currently unused
- hurt.wav - This is the sound effect file that is played when a Player is hurt
- isuse.wav - This is the sound effect file that is played when a Player activates the Insta-Shield
- jump.wav - This is the sound effect file that is played when a Player jumps
- lamppost.wav - This is the sound effect file that is played when a Player triggers a LampPost/StarPost
- lring.wav - This is the sound effect file that is played when a Player spills rings when being hurt
- lsget.wav - This is the sound effect file that is played when a Player obtains a Lightning Shield
- lsuse.wav - This is the sound effect file that is played when a Player uses the Lightning Shield's Double-Jump
- nsget.wav - This is the sound effect file that is played when a Player obtains a Normal Shield
- poof.wav - This is the sound effect file that is played when an Enemy is defeated or an Item Box is destroyed
- ring.wav - This is the sound effect file that is played when a Player collects a ring
- rumble.wav - This is the sound effect file that is played during a scren-shaking "rumble" sequence
- rustle.wav - This is the sound effect file that is played when a Player collides with rustling leaves. This sound is currently unused
- sfx000.wav - This is a silent waveform suitable for loading as Game-Global sound effect 0
- signpost.wav - This is the sound effect file that is played when a Player spins an end-of-level SignPost
- skid.wav - This is the sound effect file that is played when a Player is skidding to a stop
- spike.wav - This is the sound effect file that is played when a Player is hurt by spikes
- spin.wav - This is the sound effect file that is played when a Player performs a Spin Attack
- splash.wav - This is the sound effect file that is played when a Player splashes into or out of water
- spring.wav - This is the sound effect file that is played when a Player is bounced from a Spring
- teleport.wav - This is the sound effect file that is played when a Player is teleported to the Special Stage. This sound is currently unused
- tfly.wav - This is the sound effect file that is played while Tails is flying, but not tired
- trnsfrm2.wav - This is the sound effect file that is played when a Player enters "Super state" (Sonic 2 style)
- trnsfrm3.wav - This is the sound effect file that is played while a Player enters "Super state" (Sonic 3 style)
- ttired.wav - This is the sound effect file that is played while Tails is flying, but is tired
- twinkle.wav - This is the sound effect file that is played when a Player bounces a falling end-of-level SignPost. This sound is currently unused
- usget.wav - This is the sound effect file that is played when a Player obtains ???. This sound is currently unused
- whistle.wav - This is the sound effect file that is played when a Player whistles. This sound is currently unused
- wsget.wav - This is the sound effect file that is played when a Player obtains a Bubble Shield
- wsuse.wav - This is the sound effect file that is played when a Player uses the Bubble Shield's Bubble Bounce to bounce down, and when he bounces back up from the ground
- /stats - This is where the Game-Global "Status Objects" are stored. Each of the ".def" files are loaded by "game.def"
- gtover.def - This Status Object is spawned to trigger the "Game Over" and "Time Over" events. It is responsible for displaying the moving text, playing the "Game Over" music, and exiting level gameplay after time has expired or any of the jump buttons are pressed
- hud.def - This Status Object is spawned during Level Init, and serves as a "Heads Up Display", showing the Player's Score, Rings Collected, Remaining Lives, and Level Timer during level gameplay
- hud.tga - This is the Status Script art file that contains the graphics for the HUD, the "Game Over" and "Time Over" events, and the Level-Out Score Countdown event. This file is loaded by "gtover.def", "hud.def", and "levout.def"
- levfont.fnt - This is the font setup script for the font used by the TitleCard. This file is loaded by "fonts.def" as Font 5
- levout.def - This Status Object is spawned by the SignPost and Capsule/Egg Prison objects to trigger the Level-Out Score Countdown event. It is responsible for displaying the moving text and counters, playing the "Level Out" music, and setting a flag to let the currently-active Boundary Event know that the Level-Out event is complete, and it should either fade out to or chain into the next level
- life.fnt - This is the font setup script for the font used by the lives counter portion of the HUD. This file is loaded by "fonts.def" as Font 4
- statfont.fnt - This is the font setup script for the font used by all counters on the HUD except for the lives counter. This file is loaded by "fonts.def" as Font 3
- tcard.def - This Status Object is spawned during Level Init as a "TitleCard". It is responsible for displaying the moving level name text, fading in the level, activating Player and other Object processing, activating Tile and Palette Animation, and scrolling the level name back out
- zlabel.tga - This is the Status Script art file that contains the graphic and Font art for the TitleCard. This file is loaded by "tcard.def", and also by "levfont.fnt"
- /tables - This is where the Game-Global Table Files are stored. Each of these files is loaded by "tables.def"
- bridge1.tbl - This Binary Table File is used by tension bridges
- bridge2.tbl - This Binary Table File is used by tension bridges
- bubbles.def - This Table Def File is used by Bubble Spawners to determine the order in which to spawn differently-sized bubbles
- bublbob.tbl - This Binary Table File is used Bubbles to calculate their horizontal swaying movement as they move upward
- bwaldir1.def - This Table Def File is used to apply velocities to leftward-flying pieces of Breakable Walls
- bwaldir2.def - This Table Def File is used to apply velocities to right-flying pieces of Breakable Walls
- bwallcpy.def - This Table Def File is used determine where each of the four tiles of each breakaway part of a Breakable Wall should obtain its Tile ID from the original Breakable Wall object
- bwalloff.def - This Table Def File is used determine where each of the breakaway parts of a Breakable Wall should be spawned
- dashspdn.def - This Table Def File is used upon spindash release to determine the velocity that should be applied to the player, based on his spindash charge level
- dashspds.def - This Table Def File is used upon spindash release to determine the velocity that should be applied to the player in "Super" state, based on his spindash charge level
- invani1.tbl - This Binary Table File is used to determine which animation frame each Sonic 3-style Invincibility Star should be displaying
- invani2.tbl - This Binary Table File is used to determine which animation frame each Sonic 3-style Invincibility Star should be displaying
- invani3.tbl - This Binary Table File is used to determine which animation frame each Sonic 3-style Invincibility Star should be displaying
- invani4.tbl - This Binary Table File is used to determine which animation frame each Sonic 3-style Invincibility Star should be displaying
- invani5.tbl - This Binary Table File is used to determine which animation frame each Sonic 3-style Invincibility Star should be displaying
- invani6.tbl - This Binary Table File is used to determine which animation frame each Sonic 3-style Invincibility Star should be displaying
- invani7.tbl - This Binary Table File is used to determine which animation frame each Sonic 3-style Invincibility Star should be displaying
- invani8.tbl - This Binary Table File is used to determine which animation frame each Sonic 3-style Invincibility Star should be displaying
- invoff.tbl - This Binary Table File is used to determine the offsets at which to place Sonic 3-style Invincibility Stars around their central positions for the rotating effect
- knuspd.def - This Table Def File is used when determining which speeds to apply to the "Knuckles" Player Character when an item or event changes his stats
- lscode.def - This Table Def File contains the keycode sequence used to activate the Level Select Cheat from the Title Screen
- signsprk.tbl - This Binary Table File is used to determine at what offset from the SignPost object each of the post's sparkles should be spawned
- sine.tbl - This Binary Table File is a sine/cosine table for a circle split into 256-degrees. The values are fixed-point; they are multiplied by 256 (right-shifted by 8)
- sonspd.def - This Table Def File is used when determining which speeds to apply to the "Sonic" Player Character when an item or event changes his stats
- taispd.def - This Table Def File is used when determining which speeds to apply to the "Tails" Player Character when an item or event changes his stats
- timebonu.def - This Table Def File is used to determine which Time Bonus Score Amount to award to the player for the Level-Out Score Countdown based on the current Level Timer time
- /zone00 - This is where E02 expects to find the "zone.def" file that loads the data for for Zone 0, and contains all of that data as well. In this example, this is "Green Hill Zone"
- 1.itm - This is the Object Layout File for "Green Hill Zone Act 1". These files are created by E02 when Objects are saved using the Func_Save_Objects script command, usually in conjunction with Debug Mode, or from within the Object Editor. This is the file that spawns all of the Objects that appear in "Test Zone" that are not otherwise spawned manually by a Script Command. This file is loaded by the Func_Load_Objects Script Command in this level's init function
- 1.lev - This is the Level Layout File for "Green Hill Zone Act 1". These files are created by E02 when level layouts are saved from within the Level Editor, or when the Level Ripper is used to convert PCX or TGA image data into E02 level and tile data. This is the file that contains the data for using the tiles to build all portions of the level displayed in this example. This file is loaded by the Func_Load_Level Script Command in this level's init function
- 1.til - This is the Tile File for all three acts of "Green Hill Zone". These files are created by E02 when tile graphic and property data are saved from within the Tile Editor, or when the Level Ripper is used to convert PCX or TGA image data into E02 level and tile data. This is the file that contains the graphic tiles that are used to build all portions of the level displayed in this example. This file is loaded by the Func_Load_Tiles Script Command in this level's init function
- 2.itm - This is the Object Layout File for "Green Hill Zone Act 2". These files are created by E02 when Objects are saved using the Func_Save_Objects script command, usually in conjunction with Debug Mode, or from within the Object Editor. This is the file that spawns all of the Objects that appear in "Test Zone" that are not otherwise spawned manually by a Script Command. This file is loaded by the Func_Load_Objects Script Command in this level's init function
- 2.lev - This is the Level Layout File for "Green Hill Zone Act 2". These files are created by E02 when level layouts are saved from within the Level Editor, or when the Level Ripper is used to convert PCX or TGA image data into E02 level and tile data. This is the file that contains the data for using the tiles to build all portions of the level displayed in this example. This file is loaded by the Func_Load_Level Script Command in this level's init function
- 3.itm - This is the Object Layout File for "Green Hill Zone Act 3". These files are created by E02 when Objects are saved using the Func_Save_Objects script command, usually in conjunction with Debug Mode, or from within the Object Editor. This is the file that spawns all of the Objects that appear in "Test Zone" that are not otherwise spawned manually by a Script Command. This file is loaded by the Func_Load_Objects Script Command in this level's init function
- 3.lev - This is the Level Layout File for "Green Hill Zone Act 3". These files are created by E02 when level layouts are saved from within the Level Editor, or when the Level Ripper is used to convert PCX or TGA image data into E02 level and tile data. This is the file that contains the data for using the tiles to build all portions of the level displayed in this example. This file is loaded by the Func_Load_Level Script Command in this level's init function
- ghz.xm - This is the music file used as "Green Hill Zone's" level music. This file is loaded by "zone00/music.def"
- music.def - This is the Zone Music Def file for "Green Hill Zone". This file is loaded by "zone00/zone.def"
- objani.def - This is the Zone Scripted Object Animation Function File for "Green Hill Zone". These are the functions that may be assigned to an object type to run as Animations and are primarily for setting the object's display frame(s), but may be made to perform other actions at the same time. This file is loaded by "zone00/objects.def"
- objcol.def - This is the Zone Scripted Object Collision Function File for "Green Hill Zone". These are the functions that may be assigned to an object type to run during the Collision Phase, and are used to test for and respond to collisions against players. This file is loaded by "objects.def"
- objdbd.def - This is the Zone Scripted Object Debug Drawing Function File for "Green Hill Zone". These are the functions that may be assigned to an object type to run immediately after an object of that type has been placed using Debug Mode, and are generally used to control how an Object is displayed when it is setlected for use in Debug Mode. This file is loaded by "zone00/objects.def"
- objdbp.def - This is the Zone Scripted Object Debug Placement Function File for "Green Hill Zone". These are the functions that may be assigned to an object type to run immediately after an object of that type has been placed using Debug Mode, and are generally used to control modifiable settings on the newly-spawned object under varying circumstances, but may be used to modify other gameplay elements as well. This file is loaded by "zone00/objects.def"
- objects.def - This is the Zone Object Def file for "Green Hill Zone". This file is loaded by "zone00/zone.def"
- objects.spr - This is an E02 "sprite file" containing all Zone Object graphics for "Green Hill Zone" in a format usable by E02's Sprite Editor, and which is loaded by "zone00/objects.def"
- objmv.def - This is the Zone Scripted Object Movement Function File for "Green Hill Zone". These are the functions that may be assigned to an object type to run during the Movement Phase, and are generally used to control the object's movement and other states throughout its existence during gameplay, but may be made to perform other actions at the same time. This file is loaded by "zone00/objects.def"
- zone.def - This is the Zone Def file that E02 expects to find in the Zone's folder, which loads all Zone-Specific data
- zonefunc.def - This is the Zone Level Event/Sentry Function File for "Green Hill Zone". These are the functions that can be used to initialize the level, perform actions when a boundary event occurs, or can be called by the level init or boundary event functions to run "in the background" for controlling persistent level events, general timers, etc. These functions may also be referenced by any part of the game by explicitly using a Func_Call/Run/Stop_Game_Function Script Command. This file is loaded by "zone00/zone.def"
- /zone01 - This is where E02 expects to find the "zone.def" file that loads the data for for Zone 1, and contains all of that data as well. In this example, this is "Test Zone"
- /Tables - This folder contains Table Files used in "Test Zone". Each of these files is loaded by "zone01/tables.def"
- bgpal.tbl - This Binary Table File contains sequence data used by a special Function for the cycling color pattern used in "Test Zone"
- 1.itm - This is the Object Layout File for "Test Zone". These files are created by E02 when Objects are saved using the Func_Save_Objects script command, usually in conjunction with Debug Mode, or from within the Object Editor. This is the file that spawns all of the Objects that appear in "Test Zone" that are not otherwise spawned manually by a Script Command. This file is loaded by the Func_Load_Objects Script Command in this level's init function
- 1.lev - This is the Level Layout File for "Test Zone". These files are created by E02 when level layouts are saved from within the Level Editor, or when the Level Ripper is used to convert PCX or TGA image data into E02 level and tile data. This is the file that contains the data for using the tiles to build all portions of the level displayed in this example. This file is loaded by the Func_Load_Level Script Command in this level's init function
- 1.ogg - This is the first part of a two-part music file used as "Test Zone's" level music, and functions as the pre-loop song intro. This file is loaded by "zone01/music.def"
- 1.til - This is the Tile File for "Test Zone". These files are created by E02 when tile graphic and property data are saved from within the Tile Editor, or when the Level Ripper is used to convert PCX or TGA image data into E02 level and tile data. This is the file that contains the graphic tiles that are used to build all portions of the level displayed in this example. This file is loaded by the Func_Load_Tiles Script Command in this level's init function
- 2.ogg - This is the second part of a two-part music file used as "Test Zone's" level music, and functions as the looping section of the song. This file is loaded by "zone01/music.def"
- music.def - This is the Zone Music Def file for "Test Zone". This file is loaded by "zone01/zone.def"
- objani.def - This is the Zone Scripted Object Animation Function File for "Test Zone". These are the functions that may be assigned to an object type to run as Animations and are primarily for setting the object's display frame(s), but may be made to perform other actions at the same time. This file is loaded by "zone01/objects.def"
- objcol.def - This is the Zone Scripted Object Collision Function File for "Test Zone". These are the functions that may be assigned to an object type to run during the Collision Phase, and are used to test for and respond to collisions against players. This file is loaded by "objects.def"
- objdbp.def - This is the Zone Scripted Object Debug Placement Function File for "Test Zone". These are the functions that may be assigned to an object type to run immediately after an object of that type has been placed using Debug Mode, and are generally used to control modifiable settings on the newly-spawned object under varying circumstances, but may be used to modify other gameplay elements as well. This file is loaded by "zone01/objects.def"
- objects.def - This is the Zone Object Def file for "Test Zone". This file is loaded by "zone01/zone.def"
- objects.spr - This is an E02 "sprite file" containing all Zone Object graphics for "Test Zone" in a format usable by E02's Sprite Editor, and which is loaded by "zone01/objects.def"
- objmv.def - This is the Zone Scripted Object Movement Function File for "Test Zone". These are the functions that may be assigned to an object type to run during the Movement Phase, and are generally used to control the object's movement and other states throughout its existence during gameplay, but may be made to perform other actions at the same time. This file is loaded by "zone01/objects.def"
- tables.def - This is the Table Def File that E02 expects to find if any Zone-Specific Table Files are to be loaded for the current "Zone", and loads all of the Table Files that should be made available to the "Test Zone". If no Table Files were being used, this file would have been omitted
- zone.def - This is the Zone Def file that E02 expects to find in the Zone's folder, which loads all Zone-Specific data
- zonefunc.def - This is the Zone Level Event/Sentry Function File for "Test Zone". These are the functions that can be used to initialize the level, perform actions when a boundary event occurs, or can be called by the level init or boundary event functions to run "in the background" for controlling persistent level events, general timers, etc. These functions may also be referenced by any part of the game by explicitly using a Func_Call/Run/Stop_Game_Function Script Command. This file is loaded by "zone01/zone.def"
- /zone02 - This is where E02 expects to find the "zone.def" file that loads the data for for Zone 2, and contains all of that data as well. In this example, this is "Gemstone Garden Zone"
- /Tables - This folder contains Table Files used in "Gemstone Garden Zone". Each of these files is loaded by "zone02/tables.def"
- bgripple.def - This Table Def File contains offset data used by a special Function for creating a small rippling effect for the farthest "outside" background plane in "Gemstone Garden Zone"
- 1.itm - This is the Object Layout File for "Gemstone Garden Zone Act 1". These files are created by E02 when Objects are saved using the Func_Save_Objects script command, usually in conjunction with Debug Mode, or from within the Object Editor. This is the file that spawns all of the Objects that appear in "Gemstone Garden Zone" that are not otherwise spawned manually by a Script Command. This file is loaded by the Func_Load_Objects Script Command in this level's init function
- 1.lev - This is the Level Layout File for "Gemstone Garden Zone Act 1". These files are created by E02 when level layouts are saved from within the Level Editor, or when the Level Ripper is used to convert PCX or TGA image data into E02 level and tile data. This is the file that contains the data for using the tiles to build all portions of the level displayed in this example. This file is loaded by the Func_Load_Level Script Command in this level's init function
- 1.ogg - This is the music file used as "Gemstone Garden Zone Act 1's" level music. This file is loaded by "zone02/music1.def"
- 1.til - This is the Tile File for "Gemstone Garden Zone". These files are created by E02 when tile graphic and property data are saved from within the Tile Editor, or when the Level Ripper is used to convert PCX or TGA image data into E02 level and tile data. This is the file that contains the graphic tiles that are used to build all portions of the level displayed in this example. This file is loaded by the Func_Load_Tiles Script Command in this level's init function
- 2.itm - This is the Object Layout File for "Gemstone Garden Zone Act 2". These files are created by E02 when Objects are saved using the Func_Save_Objects script command, usually in conjunction with Debug Mode, or from within the Object Editor. This is the file that spawns all of the Objects that appear in "Gemstone Garden Zone" that are not otherwise spawned manually by a Script Command. This file is loaded by the Func_Load_Objects Script Command in this level's init function
- 2.lev - This is the Level Layout File for "Gemstone Garden Zone Act 2". These files are created by E02 when level layouts are saved from within the Level Editor, or when the Level Ripper is used to convert PCX or TGA image data into E02 level and tile data. This is the file that contains the data for using the tiles to build all portions of the level displayed in this example. This file is loaded by the Func_Load_Level Script Command in this level's init function
- 2.ogg - This is the music file used as "Gemstone Garden Zone Act 2's" level music. This file is loaded by "zone02/music2.def"
- act1func.def - This is the Act Level Event/Sentry Function File for "Gemstone Garden Zone Act 1". These are the functions that can be used to initialize the level, perform actions when a boundary event occurs, or can be called by the level init or boundary event functions to run "in the background" for controlling persistent level events, general timers, etc. These functions may also be referenced by any part of the game by explicitly using a Func_Call/Run/Stop_Game_Function Script Command. This file is loaded by "zone02/zone.def"
- act2func.def - This is the Act Level Event/Sentry Function File for "Gemstone Garden Zone Act 2". These are the functions that can be used to initialize the level, perform actions when a boundary event occurs, or can be called by the level init or boundary event functions to run "in the background" for controlling persistent level events, general timers, etc. These functions may also be referenced by any part of the game by explicitly using a Func_Call/Run/Stop_Game_Function Script Command. This file is loaded by "zone02/zone.def"
- music1.def - This is the Act Music Def file for "Gemstone Garden Zone Act 1". This file is loaded by "zone02/zone.def"
- music2.def - This is the Act Music Def file for "Gemstone Garden Zone Act 2". This file is loaded by "zone02/zone.def"
- objani.def - This is the Zone Scripted Object Animation Function File for "Gemstone Garden Zone". These are the functions that may be assigned to an object type to run as Animations and are primarily for setting the object's display frame(s), but may be made to perform other actions at the same time. This file is loaded by "zone02/objects.def"
- objcol.def - This is the Zone Scripted Object Collision Function File for "Gemstone Garden Zone". These are the functions that may be assigned to an object type to run during the Collision Phase, and are used to test for and respond to collisions against players. This file is loaded by "objects.def"
- objdbd.def - This is the Zone Scripted Object Debug Drawing Function File for "Gemstone Garden Zone". These are the functions that may be assigned to an object type to run immediately after an object of that type has been placed using Debug Mode, and are generally used to control how an Object is displayed when it is setlected for use in Debug Mode. This file is loaded by "zone02/objects.def"
- objdbp.def - This is the Zone Scripted Object Debug Placement Function File for "Gemstone Garden Zone". These are the functions that may be assigned to an object type to run immediately after an object of that type has been placed using Debug Mode, and are generally used to control modifiable settings on the newly-spawned object under varying circumstances, but may be used to modify other gameplay elements as well. This file is loaded by "zone02/objects.def"
- objects.def - This is the Zone Object Def file for "Gemstone Garden Zone". This file is loaded by "zone02/zone.def"
- objects.spr - This is an E02 "sprite file" containing all Zone Object graphics for "Gemstone Garden Zone" in a format usable by E02's Sprite Editor, and which is loaded by "zone02/objects.def"
- objmv.def - This is the Zone Scripted Object Movement Function File for "Gemstone Garden Zone". These are the functions that may be assigned to an object type to run during the Movement Phase, and are generally used to control the object's movement and other states throughout its existence during gameplay, but may be made to perform other actions at the same time. This file is loaded by "zone02/objects.def"
- zone.def - This is the Zone Def file that E02 expects to find in the Zone's folder, which loads all Zone-Specific data
- zonefunc.def - This is the Zone Level Event/Sentry Function File for "Gemstone Garden Zone". These are the functions that can be used to initialize the level, perform actions when a boundary event occurs, or can be called by the level init or boundary event functions to run "in the background" for controlling persistent level events, general timers, etc. These functions may also be referenced by any part of the game by explicitly using a Func_Call/Run/Stop_Game_Function Script Command. This file is loaded by "zone02/zone.def"
- /zone03 - This is where E02 expects to find the "zone.def" file that loads the data for for Zone 3, and contains all of that data as well. In this example, this is the empty "Zone 3"
- /zone04 - This is where E02 expects to find the "zone.def" file that loads the data for for Zone 4, and contains all of that data as well. In this example, this is the empty "Zone 4"
- /zone05 - This is where E02 expects to find the "zone.def" file that loads the data for for Zone 5, and contains all of that data as well. In this example, this is the empty "Zone 5"
- /zone06 - This is where E02 expects to find the "zone.def" file that loads the data for for Zone 6, and contains all of that data as well. In this example, this is "Bonus Stage"
- /Tables - This folder contains Table Files used in "Bonus Stage". Each of these files is loaded by "zone06/tables.def"
- bgpal.tbl - This Binary Table File contains sequence data used by a special Function for the cycling color pattern used in "Bonus Stage"
- rnditm.def - This Table Def File contains probability data used by a special Function for determining the likelihood that a "random" item will be turned into any particular normal item in "Bonus Stage"
- 1.itm - This is the Object Layout File for "Bonus Stage". These files are created by E02 when Objects are saved using the Func_Save_Objects script command, usually in conjunction with Debug Mode, or from within the Object Editor. This is the file that spawns all of the Objects that appear in "Bonus Stage" that are not otherwise spawned manually by a Script Command. This file is loaded by the Func_Load_Objects Script Command in this level's init function
- 1.lev - This is the Level Layout File for "Bonus Stage". These files are created by E02 when level layouts are saved from within the Level Editor, or when the Level Ripper is used to convert PCX or TGA image data into E02 level and tile data. This is the file that contains the data for using the tiles to build all portions of the level displayed in this example. This file is loaded by the Func_Load_Level Script Command in this level's init function
- 1.ogg - This is the first part of a two-part music file used as "Bonus Stage's" level music, and functions as the pre-loop song intro. This file is loaded by "zone06/music.def"
- 1.til - This is the Tile File for "Bonus Stage". These files are created by E02 when tile graphic and property data are saved from within the Tile Editor, or when the Level Ripper is used to convert PCX or TGA image data into E02 level and tile data. This is the file that contains the graphic tiles that are used to build all portions of the level displayed in this example. This file is loaded by the Func_Load_Tiles Script Command in this level's init function
- 2.ogg - This is the second part of a two-part music file used as "Bonus Stage's" level music, and functions as the looping section of the song. This file is loaded by "zone06/music.def"
- music.def - This is the Zone Music Def file for "Bonus Stage". This file is loaded by "zone06/zone.def"
- objani.def - This is the Zone Scripted Object Animation Function File for "Bonus Stage". These are the functions that may be assigned to an object type to run as Animations and are primarily for setting the object's display frame(s), but may be made to perform other actions at the same time. This file is loaded by "zone06/objects.def"
- objcol.def - This is the Zone Scripted Object Collision Function File for "Bonus Stage". These are the functions that may be assigned to an object type to run during the Collision Phase, and are used to test for and respond to collisions against players. This file is loaded by "objects.def"
- objdbd.def - This is the Zone Scripted Object Debug Drawing Function File for "Bonus Stage". These are the functions that may be assigned to an object type to run immediately after an object of that type has been placed using Debug Mode, and are generally used to control how an Object is displayed when it is setlected for use in Debug Mode. This file is loaded by "zone06/objects.def"
- objdbp.def - This is the Zone Scripted Object Debug Placement Function File for "Bonus Stage". These are the functions that may be assigned to an object type to run immediately after an object of that type has been placed using Debug Mode, and are generally used to control modifiable settings on the newly-spawned object under varying circumstances, but may be used to modify other gameplay elements as well. This file is loaded by "zone06/objects.def"
- objects.def - This is the Zone Object Def file for "Bonus Stage". This file is loaded by "zone06/zone.def"
- objects.spr - This is an E02 "sprite file" containing all Zone Object graphics for "Bonus Stage" in a format usable by E02's Sprite Editor, and which is loaded by "zone06/objects.def"
- objmv.def - This is the Zone Scripted Object Movement Function File for "Bonus Stage". These are the functions that may be assigned to an object type to run during the Movement Phase, and are generally used to control the object's movement and other states throughout its existence during gameplay, but may be made to perform other actions at the same time. This file is loaded by "zone06/objects.def"
- tables.def - This is the Table Def File that E02 expects to find if any Zone-Specific Table Files are to be loaded for the current "Zone", and loads all of the Table Files that should be made available to the "Bonus Stage". If no Table Files were being used, this file would have been omitted
- zone.def - This is the Zone Def file that E02 expects to find in the Zone's folder, which loads all Zone-Specific data
- zonefunc.def - This is the Zone Level Event/Sentry Function File for "Bonus Stage". These are the functions that can be used to initialize the level, perform actions when a boundary event occurs, or can be called by the level init or boundary event functions to run "in the background" for controlling persistent level events, general timers, etc. These functions may also be referenced by any part of the game by explicitly using a Func_Call/Run/Stop_Game_Function Script Command. This file is loaded by "zone06/zone.def"
- /zone07 - This is where E02 expects to find the "zone.def" file that loads the data for for Zone 6, and contains all of that data as well. In this example, this is "Special Stage"
- /Tables - This folder contains Table Files used in "Special Stage". Each of these files is loaded by "zone07/tables.def"
- bgpal.tbl - This Binary Table File contains sequence data used by a special Function for the cycling color pattern used in "Special Stage"
- 1.lev - This is a Level Layout File for "Special Stage" that contains the background and randomly-selected layout structure pieces that are used to generate the foreground and object layout for "Special Stage". These files are created by E02 when level layouts are saved from within the Level Editor, or when the Level Ripper is used to convert PCX or TGA image data into E02 level and tile data. This is the file that contains the data for using the tiles to build all portions of the level displayed in this example. This file is loaded by the Func_Load_Level Script Command in this level's init function
- 1.ogg - This is the first part of a two-part music file used as "Special Stage's" level music, and functions as the pre-loop song intro. This file is loaded by "zone07/music.def"
- 1.til - This is the Tile File for "Special Stage". These files are created by E02 when tile graphic and property data are saved from within the Tile Editor, or when the Level Ripper is used to convert PCX or TGA image data into E02 level and tile data. This is the file that contains the graphic tiles that are used to build all portions of the level displayed in this example. This file is loaded by the Func_Load_Tiles Script Command in this level's init function
- 2.ogg - This is the second part of a two-part music file used as "Special Stage's" level music, and functions as the looping section of the song. This file is loaded by "zone07/music.def"
- hud.def - This "Status Object" is spawned during Level Init, and serves as a "Heads Up Display" for "Bonus Stage" and "Special Stage", Rings Collected and Remaining Lives during gameplay. It is loaded by "zone06/zone.def" and "zone07/zone.def"
- levout.def - This "Status Object" is spawned at the end of "Special Stage" gameplay when the stage is won or lost. It is responsible for displaying the moving text and counters, playing the "Level Out" music, and setting a flag to let the currently-active Boundary Event know that the Level-Out event is complete, and it should fade out to the current/next level. It is loaded by "zone07/zone.def"
- levout.tga - This is the Status Script art file that contains the graphic and Font art for the "level-out" score counter for "Special Stage. This file is loaded by "zone07/levout.def"
- music.def - This is the Zone Music Def file for "Special Stage". This file is loaded by "zone07/zone.def"
- objani.def - This is the Zone Scripted Object Animation Function File for "Special Stage". These are the functions that may be assigned to an object type to run as Animations and are primarily for setting the object's display frame(s), but may be made to perform other actions at the same time. This file is loaded by "zone07/objects.def"
- objcol.def - This is the Zone Scripted Object Collision Function File for "Special Stage". These are the functions that may be assigned to an object type to run during the Collision Phase, and are used to test for and respond to collisions against players. This file is loaded by "objects.def"
- objects.def - This is the Zone Object Def file for "Special Stage". This file is loaded by "zone07/zone.def"
- objects.spr - This is an E02 "sprite file" containing all Zone Object graphics for "Special Stage" in a format usable by E02's Sprite Editor, and which is loaded by "zone07/objects.def"
- objmv.def - This is the Zone Scripted Object Movement Function File for "Special Stage". These are the functions that may be assigned to an object type to run during the Movement Phase, and are generally used to control the object's movement and other states throughout its existence during gameplay, but may be made to perform other actions at the same time. This file is loaded by "zone07/objects.def"
- tables.def - This is the Table Def File that E02 expects to find if any Zone-Specific Table Files are to be loaded for the current "Zone", and loads all of the Table Files that should be made available to the "Special Stage". If no Table Files were being used, this file would have been omitted
- tcard.def - This "Status Object" is spawned during Level Init as a "TitleCard". It is responsible for displaying the moving level name text, fading in the level, activating Player and other Object processing, activating Tile and Palette Animation, and scrolling the level name back out. It is loaded by "zone06/zone.def" and "zone07/zone.def"
- zone.def - This is the Zone Def file that E02 expects to find in the Zone's folder, which loads all Zone-Specific data
- zonefunc.def - This is the Zone Level Event/Sentry Function File for "Special Stage". These are the functions that can be used to initialize the level, perform actions when a boundary event occurs, or can be called by the level init or boundary event functions to run "in the background" for controlling persistent level events, general timers, etc. These functions may also be referenced by any part of the game by explicitly using a Func_Call/Run/Stop_Game_Function Script Command. This file is loaded by "zone07/zone.def"
- /zone94 - This is where E02 expects to find the "zone.def" file that loads the data for for Zone 94, and contains all of that data as well. In this example, this is the Title Screen
- levsel.def - This Status Object is spawned upon successful entry of the "Level Select Code", when "A" is held and "Start" is pressed, and serves as a list-based "Level Select Screen", also containing a "Sound Test" option. This file is loaded by "zone94/zone.def"
- music.def - This is the Zone Music Def file for the Title Screen. This file is loaded by "zone94/zone.def"
- sonframe.tga - This is the Status Script art file that contains the giant Sonic frame graphics for the Title Screen. This file is loaded by "zone94/titlscrn.def"
- title.ogg - This is the music file for the music that is played during the Title Screen. This file is loaded by "zone05/music.def"
- title.tga - This is the Status Script art file that contains graphics for all Title Screen elements except for the giant Sonic and the background. This file is loaded by "zone94/titlscrn.def"
- titlfunc.def - This is the Zone Level Event/Sentry Function File for the Title Screen. These are the functions that can be used to initialize the level, perform actions when a boundary event occurs, or can be called by the level init or boundary event functions to run "in the background" for controlling persistent level events, general timers, etc. These functions may also be referenced by any part of the game by explicitly using a Func_Call/Run/Stop_Game_Function Script Command. This file is loaded by "zone94/zone.def"
- titlscrn.def - This Status Object is spawned during Level Init, and serves as a "Title Screen". It is responsible for displaying and controlling all Title Screen elements except for the background, but it is responsible for scrolling the background. This file is loaded by "zone94/zone.def"
- zone.def - This is the Zone Def file that E02 expects to find in the Zone's folder, which loads all Zone-Specific data
- /zone95 - This is where E02 expects to find the "zone.def" file that loads the data for for Zone 95, and contains all of that data as well. In this example, this is the Level, Play Mode, and Character Select Screen
- /sfx - This is where the Zone sound effect files are stored for the Selection Screen. Each of these files is loaded by "zone95/sfx.def"
- menuback.wav - This is the sound effect file that is played the "back" button is pressed to move back to the previous menu on the Selection Screen
- menusel.wav - This is the sound effect file that is played when a menu option is selected on the Selection Screen
- 1.lev - This is the Level Layout File for the background of the Selection Screen. These files are created by E02 when level layouts are saved from within the Level Editor, or when the Level Ripper is used to convert PCX or TGA image data into E02 level and tile data. This is the file that contains the data for using the tiles to build all portions of the level displayed in this example. This file is loaded by the Func_Load_Level Script Command in this level's init function
- 1.ogg - This is the first part of a two-part music file used as the Select Screen's music, and functions as the pre-loop song intro. This file is loaded by "zone95/music.def"
- 1.til - This is the Tile File for the background of the Selection Screen. These files are created by E02 when tile graphic and property data are saved from within the Tile Editor, or when the Level Ripper is used to convert PCX or TGA image data into E02 level and tile data. This is the file that contains the graphic tiles that are used to build all portions of the level displayed in this example. This file is loaded by the Func_Load_Tiles Script Command in this level's init function
- 2.ogg - This is the second part of a two-part music file used as the Select Screen's music, and functions as the looping section of the song. This file is loaded by "zone95/music.def"
- ggz.tga - This is the Status Script art file that contains graphics for the "Gemstone Garden Zone" entry on the Selection Screen. This file is loaded by "zone95/select.def"
- ghz.tga - This is the Status Script art file that contains graphics for the "Green Hill Zone" entry on the Selection Screen. This file is loaded by "zone95/select.def"
- music.def - This is the Zone Music Def file for the Selection Screen. This file is loaded by "zone95/zone.def"
- script.tga - This is the Status Script art file that contains graphics for the "Script" entry on the Selection Screen. This file is loaded by "zone95/select.def"
- select.def - This Status Object is spawned during Level Init, and serves as a "Selection Screen". It is responsible for displaying and controlling all Selection Screen elements except for the background. This file is loaded by "zone95/zone.def"
- select.tga - This is the Status Script art file that contains all graphics for the Selection Screen except for the level images. This file is loaded by "zone95/select.def"
- sfx.def - This is the Zone Sound Effect Def File for the Selection Screen, which loads extra sound effect files that should be made available to this screen. This file is loaded by "zone95/zone.def"
- tz.tga - This is the Status Script art file that contains graphics for the "Test Zone" entry on the Selection Screen. This file is loaded by "zone95/select.def"
- zone.def - This is the Zone Def file that E02 expects to find in the Zone's folder, which loads all Zone-Specific data
- zonefunc.def - This is the Zone Level Event/Sentry Function File for the Selection Screen. These are the functions that can be used to initialize the level, perform actions when a boundary event occurs, or can be called by the level init or boundary event functions to run "in the background" for controlling persistent level events, general timers, etc. These functions may also be referenced by any part of the game by explicitly using a Func_Call/Run/Stop_Game_Function Script Command. This file is loaded by "zone95/zone.def"
- /zone96 - This is where E02 expects to find the "zone.def" file that loads the data for for Zone 96, and contains all of that data as well. In this example, this is the Competition Mode Results Screen
- 2presult.def - This Status Object is spawned during Level Init, and serves as the "Results Screen". It is responsible for displaying and controlling all Results Screen elements except for the background. This file is loaded by "zone96/zone.def"
- 1.ogg - This is the music file used as the Results Screen's music. This file is loaded by "zone96/music.def"
- music.def - This is the Zone Music Def file for the Results Screen. This file is loaded by "zone96/zone.def"
- zone.def - This is the Zone Def file that E02 expects to find in the Zone's folder, which loads all Zone-Specific data
- zonefunc.def - This is the Zone Level Event/Sentry Function File for the Results Screen. These are the functions that can be used to initialize the level, perform actions when a boundary event occurs, or can be called by the level init or boundary event functions to run "in the background" for controlling persistent level events, general timers, etc. These functions may also be referenced by any part of the game by explicitly using a Func_Call/Run/Stop_Game_Function Script Command. This file is loaded by "zone96/zone.def"
alias.def - This is the Alias Def file that E02 expects to find if any Alias Names are to be made available for use in this game's scripts
exclude.def - This is the file packing exclusion file that E02 expects to find if any files or folders found inside this game's game folder or any subfolder are to be left out when this game is "packed" (consolidated and protected) to a "game.e02" file
fonts.def - This is an the Game-Global fonts listing file, which loads all of the fonts that should be made available to the entire game. This file is loaded by "game.def"
game.def - This is the Game Def File that E02 expects to find in the Game Folder, which loads most game-global data
Info.txt - This is the "Info" file for this game. It is displayed in the in-program interface when "Info" is selected while highlighting the selection for this game. It may contain any textual information, but each line must be no longer than 38 characters. Note the capital "I"
keymap.def - This is the Key Map File that E02 expects to find in the Game Folder, which defines this game's key mappings for PC and Mac platforms
keypsp.def - This is the Key Map File that E02 expects to find in the Game Folder, which defines this game's key mappings for PSP
keywii.def - This is the Key Map File that E02 expects to find in the Game Folder, which defines this game's key mappings for Wii
keywiz.def - This is the Key Map File that E02 expects to find in the Game Folder, which defines this game's key mappings for GP2X Wiz
music.def - This is the Game-Global Music Def File, which loads all of the music files that should be made available to the entire game. This file is loaded by "game.def"
objects.def - This is the Game-Global Object Def File, which defines all of the Game Objects that should be made available to the entire game. This file is loaded by "game.def"
sfx.def - This is the Game-Global Sound Effect Def File, which loads all of the sound effect files that should be made available to the entire game. This file is loaded by "game.def"
tables.def - This is the Table Def File that E02 expects to find if any Game-Global Table Files are to be loaded, and loads all of the Table Files that should be made available to the entire game. If no Table Files were being used, this file would have been omitted