Sonic The Hedgehog: Project Mettrix Beta Release 4 Pre-test 7 Thank you for downloading Project Mettrix! This text lists the updates made at each release. The current release is Demo 4 What's new: * Demo 4.1 "CrashFix" Upgrade - Implemented a faster method for creating/destroying objects in-game, which will be used in the new engine - Included "SpritRip" utility, a minimally-featured program made to help create the sprite portions of character/object scripts - Bugfixes - Corrected some mis-managed RAM in both versions of the sound code that would cause any number of "random" crashes for different users - Removed RAM leak in Object Def list loading - Corrected attempt to "free" an unallocated pointer in the Act data - Numerous other mis-allocation and miss-free corrections - Corrected a viewport handling bug that would crash most levels on startup in 2-player mode - Eliminating a bug causing shields to display random sprites and crash the program after having gotten a new one by bouncing on a monitor with the water shield - Improved ring following, and eliminated a bug that would cause rings to fly away quickly if they were bouncing when the player picked up a lightening shield - New version of Watcom compiler eliminates DOS4GW location bug, and corrects some compilation errors that may have affected runtime performance in DOS version - Corrected the management of "overpowering" sounds (the 1up) in the Windows version, allowing it to play multiple times, letting it overtake the music the first time it's used, and pausing the start of new music until it's finished (already working in DOS version) * Demo 4 - Created and implemented customizable Font system (.FDF + .FNT) and moved all current fonts to scripted format - Added a windowed mode with menu containing size and testing options to the Windows version (F4 to toggle) [24-bit color is untested and not reccommended. Please use 16 or 32] - Basis for new "Status object" (titlecard, etc) script built, and new titlecard created. Old style titlecard has been converted to new script and included in a subfolder. - Added a "debug menu" (F7 to toggle) with ".DDS" script to access certain testing options. - Added 640x480 level/object editor mode to view and edit 4 times as large of an area at once. 320x200 mode for in-play-sized viewing and faster performance still available (F2 while in editor to toggle) - Added "above" and "below" paste methods to tile editor for merging two tile images together based on translucent areas (paste + CTRL/ALT respectively) - Increased from 24 levels of background scrolling speed to 128 (64 "slower" and 64 "faster") for more finely tuned scrolling - Documentation for Object script functions started - Converted the remainder of the old-method object spawns to new method - Optimized memory usage in tiles and sprites - Optimized level layout collision detection - Eliminated wasteful variables (slightly optimizing overall RAM usage) - Applied better slope settings to SIZ's loops - Bugfixes - Special stage entry barred until it is repaired (big rings now only give 50 rings instead of leading to a crash) - Pushable blocks weren't pushable in 2 Player mode, now fixed - Tails as player 2 trying to carry player 1 would usually crash the game, and if it didn't, the camera wouldn't reach the very top of the level. Now fixed - Players or objects that check collision against level layout would cause crashes if they went too far out of level range, now fixed (This crash led to the assumption that a 2P game would crash when one player reached the end, which actually was not true) - The Windows version's speed would rise above 60FPS and fluctuate for Win9X users, and never go above 50 for NT users. A new "Performance Timer" method has been added to replace the standard Windows timer when available, and when not, the timer latency is explicitly set to 1ms for a more accurate (although not still perfect) framelock. (This affects maximum allowed frame-rate, not performance) - Newly spawned objects would appear above certain other objects incorrectly for a split second, now fixed - Animal objects that weren't on-screen wouldn't be destroyed as they should be in 2player mode, and newly-spawned animal objects that rose above screen would be destroyed even though they should have fallen back down. Now fixed - Water bobbing and wave position wouldn't function correctly in 2P mode. This has been fixed, as well as better animation on the waves, removal of the blinking (which actually was ugly and hurt the eyes), and making the waves move as the screen panned across the level instead of staying in-place. - If Tails' "Standing Layer" was SuperForeground at the time he lost track of Sonic, it would stay that way when he reappeared, and he would constantly fall through the level. Now fixed - Setting Player 2 in GamePlay when he wasn't already made available by the "Warp" command would cause crashes, now fixed. - "Warp" command would chose wrong character for player 1 when used with an addon, now fixed - Game would crash when moving from version 3 tile format with fewer than 2000 tiles to an older tile file, now fixed - Player would be at a flat angle when coming off the bottom-corner of a curve/loop when he should have been at a downward angle. Now fixed - Fixed wrong function on first init for tiles - Corrected various bad pointers and memory leaks, fixing several problems and crashes * Demo 4 Test 7 (Public) /Please also read Demo 4 Test 3 for other updates/ - Split-Screen and "partial" Special Stage support added to Windows version. - Launcher interface changed entirely, and all options implemented - Further optimized drawing functions for both DOS and Windows versions - Began optimization of collision between player and objects - Correct representation of and collision with objects within Y-Loop levels added - Support for Multiple Palettes per tileset - Support for using an extra 64 colors for tiles and another 64 for either tiles or global objects when water is not used for the palette - Support for using global object colors in tiles (Colors are unchangeable in tile editor, as they are handled externally, and do not have rotation propertiles) - Updated .til format for use with new color options, and combined it with the old .dat format (eleminating it as an external file), as well as removing old junk data from the .dat format - Updated Level Ripper to take advantage of new color options - Updated "Camera" to be more "accurate", in that it can occasionally fall behind the player if he gains enough speed, and vertical motion during a jump and all horizontal motion occur when the player is slightly offcenter - Added "Level chaining" effect, one act flows smoothly into the next (if the layout is set up properly) - Implemented player animation scripting (currently only works for Sonic, but MUST be in all .chr files - Most of Sonic's animations changed to script form, and full animation of ducking and skidding added, as well as waiting. - Re-rip of Sonic's complete Sonic 3 frame set (Tails and Knuckles to follow in later release) - Super Sonic system partially implemented (for Sonic). Viewable by pressing "8" (Get All Chaos Emeralds, "9" removes them) and getting 50 rings, or using the S monitor. - Began implementation of Guardian Castle Zone Boss - Implemented down-left/down-right angled springs - Created new "Ring Cage" end-zone marker for Eggman (not EggRobo) zones - Added tiled (as opposed to sprite) platform objects [For Addons] - Added Green Hill rotating platform spike objects [For Addons] - Added Sonic 1 hidden score bonus pannels [For Addons] - Finished implementation of Green Hill Eggman boss [For Addons] - Improved "Tension Bridges" to look slightly better, including the border logs becoming mobile, and the player NOT twitching when between a bridge and level floors - Most global objects imlpemented in master.odf - New Shining Island act 1 "started", new objects for zone are placed within. Currently set as SiZ act 3 - New Shining Island music by Verse - Previous documentation split into smaller parts, new features documented, and Windows Help File documentation created - Created a better-suited story - Top "floor" in character select area changed to "solid on top" instead of "solid all sides" to make unwanted character buttons easier to avoid until a new selection system can be made - Objects moved/removed in Guardian Castle to prevent instant-death when restarting from a dead eggrobo position - ("un-feature") Guardian Castle's old art restored because both acts had not been converted, and new layouts are to be done - Bugfixes - Objects with properties dependant on unique representation of their X/Y position (such as platforms and monitors) are now made to update these properties when moved within object editor - Slope/cuve/loop tweaking furthered, correcting a problem with "2" and "6" slopes in the previous build - Players that should be upside-down are now represented correctly in 2 player mode - Player start direction from lamppost would always be left in last version, now depends on which way they were facing when they hit it - Development test code that set player ring value strangely when standing on collapsing platforms removed - Players going around loops and curves are now displayed properly on player 2 screen in 2 player mode - Fixed options color set in Wood Zone - "Game Over" cycle now returns to title screen properly again and is made to work in Windows (where it would previously freeze) * Known Deficiencies * - Special Stage is undergoing redevelopment, and will usually crash. Do not move, and press spacebar to exit. - Windows version currently has no joystick support. - Sonic riding Tails will usually crash the Windows version. I'm looking into this. - Windows version is more subject to crashes. If you recieve any DirectDraw errors, it may require Windows to be restarted for Mettrix to get DirectX's attention again. Even though NT-based Windows systems' command prompts don't allow sound, joystick input, or VESA video modes (Mettrix's 2 player mode) without assistance (such as VDMSound), theose generally won't be necessary during development and testing of addons, where the user may be starting and stopping the program multiple times, so it's highly recommended that you use the DOS version for this. The Windows version seems to be fine for general single-session gameplay. - 2Player mode, while playable throughout a level, seems to crash shortly after one player reaches the end. I'm looking into this. - Guardian Castle Zone Boss appears but is not complete. Only first-form attack is implemented, and only starts after one hit. - Sonic 1 Addon - The two end-level objects remain Mettrix-style, they are types that have not yet been converted to scriptable. - Sonic 1 Addon - End-level screen boundaries do not lock strictly to one screen when level-end sequence starts. Boundary scripting to be enhanced later to accomodate. - Level Layouts not good, will be changed. - Misc planned features have not yet been completed. Look foreward to them in later releases. * Unauthorized Demo 4 Internal Test Release 3 * Documented Features * - Work-In-Progress Windows port created. Gameplay, editing and sound are functional, split-screen, Special Stage, and joystick input not yet supported. - Integrated "Level Ripper" utilities into main program (usage noted in ReadMeLE.txt) - Added Titlecards - Added Titlecard scripting, converted unreleased hard-coded titlecards to this method - Tweaked slope/curve/loop handling, seems to work a bit better - Default Player accelerations corrected - Preliminary support for looping levels on the Y axis - Smother ring animations used, ability to use 4 or 8 frame versions - Added ability to place spikes and rings in rows and columns - Data file layout made cleaner, and "override" system implemented. To replace a default file in an addon, simply add it to the proper place in the "game folder" - Improved breakable walls with break condition settings - Improved Lamp/StarPosts with Tag ID's. 0's flag all posts to the left, nonzero flags all posts with ID's lower than the current post. - Added swinging platforms - Added breakable/pushable rock - Added collapseing platform - Added Sonic 1 Green Hill Zone Badniks (Jaws, MotoBug, CrabMeat, Newtron type 1 & 2, BuzzBomber) [For addons] - Added Sonic 1 Style Shield and Invincibility [For addons] - When player dies in Guardian Castle zone, the Gold EggRobos reappear in the same places, and player restarts at the position of the last one he destroyed. - SIZ Zone Boss made easier (again), and otherwise tweaked - Activated Debug object listing in ZDF files - Object Def files added for customizing global and per-level objects - Current Level-Specific objects made local to level object defs - Bugfixes - Annoying occasional "crash on startup" bug in DOS version fixed - Music would stop when speed or invincibility would wear off if the game was paused while they were on. Now fixed. - Player position at restart upon exiting a Special Stage was at the top-right corner, now fixed (in the center). - Some object spawning would cause others to disappear (including SFG, Player, and Status elements). This is now fixed. - Sometimes, when the player would spin across the ground and hits an enemy/item, he would be bounced up by one pixel (just enough to upset the score bonus). This is now fixed. - Previously, the player would sometimes come to an abrupt stop when smashing breakable walls. This is now fixed. * Undocumented Features * - Created Windows-based "Launcher" for point-and-click operation of user-created levels, level warping, and other options - Implemented status, object handles, object movement by mouse, object shifting by keyboard, and property manipulation in Object Editor (unmentioned, but previously available in demo 3.1 for deletion of unwanted objects) - Added "Object Filter" system for rearranging object IDs and values - Art changes for Shining Island - Art changes for Guardian Castle - SLIGHT layout alteration to Shining Island (Not the total-remake planned for a future release) - Began implementation of Sonic 1 Green Hill Eggman boss [For Addons] * Demo 3.1 - Added the ability to load user-created "Game Sets" - Included "Level Ripper" utilities for creating tilesets and levels from PCX images. - Updated document for Level Editing and Ripping utilities (ReadmeLE.txt) - Debug Mode active by default (Don't have to do anything special to get it) - Added a batch file to run the game with (Mettrix.bat) for people who had trouble setting up DOS4GW (Download DOS4GW, place it inside the game folder, and use Mettrix.bat to start the game.) - Bugfixes (most bugs caused during transition between character handlers) - Fixed sound issues with Tails (transition between swimming and flying, and involving 2P mode with two Tails') - Fixed screen boundary problems with Tails as player 2 in 1P game - Moving backward when screen is panning to Boss caused the boundaries to go back to nromal level bounds, now fixed. - Fixed music transition problems (1-UP/Speed/Invincibility/Level/Boss/End) - Weight taken off player when they jump out of water (momentum added so their jump height remains normal upon exit) - Collision problems arrising from rewrites fixed (Some collision with some badniks wasn't registered when flying/gliding, could climb/jump through bottom of spikes, some badniks hurt player even when "invincible") - Used Starposts now blink when player dies and restarts at them - Tails could swim while holding Sonic underwater, now fixed. - In 1P mode, only player 1's air status causes sounds. In 2P mode, both players will play warning sound, but drowning music does not occur because it would would sound improper. * Demo 3 - Framerate raised from 30 to 60 - MANY speed optimizations to assure the new rate is good for most people - "Options Zone" introduced - Functional Save-Game system - 2 Player split-screen accessible (although incomplete) - Shining Island almost completely remade. Longer, better-looking - Tension Bridges added - Zone Boss tweaked, easier to beat - Guardian Castle and all it's objects added - Incomplete zones accessible through Debug Mode - Player handler rewritten for many reasons (including that now both players can choose the same character for 2P VS, most other reasons are internal, but critical to the program) - Near-complete rewrite of character and object handling functions - Character motion made MUCH more fluid - Character animation smoother, it's speed responsive to speed of motion - Curves implemented for curving up walls, going around loops, and through tunnels - Underwater affects speed in all directions - Use of "script" files to define attributes of players (useful for creating add-ons) - Level Editor integrated INTO game (press "E" to access if Debug Mode is enabled) - Support for dual-backgrounds. Backgrounds may be changed during gameplay for effects like going inside and outside of a building - Level system rewritten to be more versatile, includes the use of script files for defining attributes of zones and a new directory structure - "Dynamic Screen Boundaries", the boundaries of a level may be updated during gameplay according to instructions given within the zone script file. This can also cause event triggers like background swapping and end-level-sign or boss calling. - 3D polygon/sprite special stage (incomplete) * Demo 2 - Bugfixes and improvements - Momentum set back to 0 when entering special stage - Grabbing bubble shield when about to drown sets music back to normal - Object collision issues fixed - Screen locked at the end of special stage - Big ring causes character to disappear upon entrance - Monitors bounce when hit from below - Animation issues fixed - Level editor included with game * Demo 1 - Initial release - More advanced movement handling than my previous games (IE: flight, gliding, climbing, more accurate speed handling) - "Multi-Paralaxing" background. Different rows can move at different Speeds - Tile Animation - Palette Rotation/Animation - Demo Recording - Tails can follow player 1, partial AI - Shining Island acts 1 and 2 test layout - Badniks, Obstacles, Moving Platforms, Items, and Zone Boss - 2D Special Stage