Sonic Classic Heroes

Discussion in 'Engineering & Reverse Engineering' started by flamewing, Nov 2, 2010.

  1. Drex


    Lazy perfectionist Member
    That would be an interesting concept for a hack. Every ring is an emerald. Collect seven become super. 7 more to become hyper, 7 more to become some uncontrollably fast monster. 7 more and you explode.

    Interesting concept ...yet vaguely familial.
  2. flamewing


    Emerald Hunter Tech Member
    Sonic Classic Heroes; Sonic 2 Special Stage Editor; Sonic 3&K Heroes (on hold)
    Version 0.07 Beta is up! This is the version I will submit to the hacking contest. There are so many large scale internal changes (many of them recent -- why, some of them from this past week!) that I would be surprised if there aren't lots of bugs.

    Sadly, save games and the new options screen haven't made into this build, but there is code and data for it there already. There is also code for playing Sonic 1 only, Sonic 2 only and Sonic 1 and 2, but there is no way to select these these options yet. I also haven't changed the cutscene (again) to add the Death Egg launch. Multiple teams also didn't make the cut yet.

    I can probably finish all but multi-teams in time to meet the update deadline, but I definitely won't be able to do them for the submission deadline.

    Edit: Updated to a build that needs 8 hits to defeat FZ boss (I *knew* I forgot something).

    Anyway. here is what has changed:
    Enhancements over previous revision:
    • Hack is now Sonic Classic Heroes, with new title screen emblem by Cinossu and layout by JojHeywood.
    • Level select icons for Sonic 1 levels, including special stage(s).
    • New act icons for Aquatic Ruin, Sky Chase and Wing Fortress, Neo.
    • New background water ripple data for ARZ and CPZ.
    • Removed more unused art from Sonic/Super Sonic/Tails/Knuckles.
    • Removed triply redundant code in player objects.
    • Made TeamPlayer code slightly more efficient.
    • Spruced up end-of-game credits; better font colors for pre-title screen screen.
    • Halved look up/down delay down to 1 second.
    • More tweaks to super underwater palettes.
    • Team selection persists after end-of-act.
    • Can swap characters at end-of-act under relaxed conditions (has to be on-screen only).
    • Implemented Xodras' suggestion to allow swap of player-controlled characters if the players are pressing a switch button.
    • Switched to faster ObjectMove and ObjectMoveAndFall from S3&K.
    • Team Super now gains extra lives at 200 and 300 rings, instead of 100 and 200.
    • S3&K-style V-Int and H-Int handlers.
    • S3&K-style terrain collision and slope resistance.
    • A few palette tweaks. Knuckles now has his proper 3 shades without the need for ugly hacks for super Knuckles.
    • In the interest of better support for future teams, the HUD icons have been moved around in VRAM so all characters can have $20 tiles again.
    • Improvements on Sonic's and Tails' small sprites in ending so as to be better compatible with other teams.
    • Improved Super Sonic ending image, Super Sonic end-of-act signpost, both by Mikel Crawford.
    • Ported proper Super Flickies from S3&K (Team Super, Team Hyper, their endings).
    • Ported all Hyper abilities and palettes (but not the after-images).
    • Taken rings, broken monitors and destroyed badniks are saved when entering (and restored exiting) Special Stage. Perfect count is also kept.
    • Reported graphics of lightning shield, bubble shield, super and invincibility stars, insta-shield, hyper stars from S3&K with more detail (using palette line 2 now). The same was done for the black-and-white sprites of Sonic, Tails and Knuckles.
    • Freed turtles parachute to safety in Sky Chase zone.
    • New HUD layout. Timer now only shows centiseconds (milliseconds was fake precision anyway), back to 7-digit scores, ring counter centered. Centiseconds are now shown based on auto-generated lookup table.
    • Changed starpost positioning behavior to have all characters together at the starpole because of a certain starpole in SBZ1.
    • New, better life icon/HUD icon for Sonic, Tails, Super Sonic and Knuckles.
    • Inproved collapsing platform and breakable wall code, based on S3&K.
    • Ported S3&K sprite manager and priority system to reduce lag and free some RAM.
    • Removed code for unused scrolling effect in CPZ2.
    • Using slight variation of Neo's font for HUD.
    • Sonic 2 chaos emeralds are now called sol emeralds. Added new Sonic 1 special stage and emerald. Sol emeralds and chaos emeralds have the same colors and are collected in the same order.
    • Show "Team Sonic" got through/got emerald/got all emeralds on 3-player games.
    • Changed Deebs' Modern Genesis Amy to E-122-Psi's Classic Amy (Tornado, end of game). Large grayscale pixel art on ending done by Neo.
    • All players move at the same speed when running after destroying EggRobo.
    • Eggman now uses a consistent look throughout the whole game. His glasses are also no longer black.
    • Converted all mappings to S3&K-style, eliminating the unused 2P mode entry. This reduces size slightly, and slightly increases speed.
    • Shields now animate globally except when doing double-jump action.
    • Hybrid S3&K and Chaotix object manager and memory allocator to reduce lag.
    • Applied djohe's improved fix for OOZ launcher balls.
    • Several code optimizations.
    • Blue nomal shield no longer exists, having been replaced with golden shield.
    • Team Hyper transformation from having all 14 emeralds, Team Super with either set.
    • Invincibility monitors become S monitors when super/hyper. When picking up the monitor, it may act as speed shoes (if you are hyper or are playing with a team that can't become hyper), invincibility (if transformation ends before bonus is given) or gives you 20 rings and transform you into hyper for about 20 seconds.
    • Fully functional S1 ending and S1->S2 transition.
    • Zone ordered tables for Oil Slides, Wind Tunnels.
    • Reordered zone IDs and zone tables to eliminate special cases almost everywhere.
    Enhancements over original games:
    • Smarter art loading in Final Zone causes boss fight to begin faster.
    • Big Ring does a better job of removing the player that went through it.
    • Variable jump height in S1 special stage by Mercury (yes, I love this fix).
    • Characters face the right way in Scrap Brain Zone 3.
    • Signpost takes slightly longer to stop spinning if a big ring is on-screen.
    • Perfect bonus for collecting all rings in S1 special stages.
    Bugs fixed from previous revision:
    • Incorrect animation was being shown when Knuckles hit a boss while gliding.
    • Fixed subtle bug in 3- versus 6-button controller input reading that was harmless only due to sheer luck.
    • Fixed subtle bug in TeamPlayer code that caused a controller to be skipped and was harmless only as long as you had at least 3 controllers by the time a port with a multitap was finished reading.
    • Corrected tone shift in PSG sounds, and modulation differences in all sounds, from S3&K.
    • Deef's credits entry was being accidentaly overwritten by Aquaslash's.
    • Lava bubble from HTZ boss (and the fire it set) cut through the fire shield because flag was being set on wrong object.
    • Performing level select code in options screen incorrectly triggered Team Super mode.
    • Fixed several cases of the walk on air glitch when player 2 or 3 was offscreen in a platform or other solid object.
    • A few fixes to breakable plating in Wing Fortress zone, which now breaks faster if multiple characters are hanging onto it.
    • Fixed bugs in seesaws.
    • Pinball mode objects now restore characters to their proper state when it unloads.
    • End-of-act signposts are loaded regardless of screen's vertical position.
    • Act pics for ARZ2, SCZ and WFZ were wrong (all showed that of ARZ1).
    • Knuckles is too low when celebrating from AI spawn.
    • Missing Nebula in Sky Chase.
    • It is now impossible to fall off the Tornado before it gets shot down at the start of WFZ.
    • Ring manager checked for mapping frame instead of animation ID to see if the character was ducking.
    • Aquis' and Octus' projectiles now reflected by shields.
    • Fixed graphical shield curruption when entering special stages.
    • Control bug fix on wind tunnels.
    • Fixed permanent whiteout of water if 2 characters with lightning shields lose it by getting submerged within 4 frames of each other.
    • Seesaws could not be used to build up speed.
    • Sonic will now correctly respawn when there is water.
    • ARZ boss' arrows fall when stood on for long enough by anyone (part fixed from original by Esrael, part broken by internal changes).
    • Sonic no longer continuously despawns then respawns if the leader is above the top of the screen.
    • Fixed crash on Sega Screen on emulated Japanese systems.
    • Fixed concurrent drowning countdowns.
    • Fixed rare death crash when swapping to a player which will die while HUD animates.
    Bugs fixed from the original games:
    • ARZ leaves generator (a normally invisible sprite) suddenly appears when main player dies.
    • Clearing the position array/status array vectors ignored the current status byte (facing, etc.).
    • Can't enter a big ring if you haven't passed through the signpost.
    • Removed 2 unreachable rings from ARZ2.
    • It should now be possible to get perfects on Oil Ocean 2 and Metropolis 2.
    • Harmless bug where the invisible grabber that allows the player to grab onto Robotnik's getaway ship in WFZ was coded to hurt the player, but didn't because he happened to be in ball form.
    • Eggrobo will also remove collision from head when being hit on the body.
    • Background blue mountains in HTZ scroll continuously now.
    • MCZ balls on chains did not properly delete themselves when offscreen.
    • Vladikcomper's PLC buffer fix.
    • Death/hurt bug with CPZ tubes.
    • The collision hit box of CPZ boss' Mega Mack did not match its graphics. The Mega Mack could not hit ducking characters. Droplets will no longer loop around the level.
    • CPZ boss gets gunked by Mega Mack when hit (by Esrael).
    • Tails' tails animation error when pushing (by RedHotSonic).
    • Accidental deletion of scattered rings when crossing the bottom boundary of looping levels (by RedHotSonic).
    • Collision width of ARZ boss' pillars (by MoDuLe).
    • Animation of ARZ boss when players are hurt (by RedHotSonic).
    • Fixed multiple CNZ boss bugs (by RedHotSonic).
    • Boss Deconstruction Behavior (by Esrael and RedHotSonic).
    • Tails' tails also flashes when Tails is hurt.
    • Damaged Eggman would vanish after going offscreen in Final Zone.
    • Fixed Knuckles' continuous fast climb animation when near the bottom of a ledge (including small ledges).
    • CPU will no longer keep madly jumping again and again when the leader is standing beside something.
  3. Drex


    Lazy perfectionist Member
    Awesome release man. I can't play it as much as I wan to here at school, but I looks great and haven't had any issues so far.
  4. Amazing work, flamewing!

    Issues, It seems that one player sometimes just stays put and doesn't follow me. Also I think the sparkles glitched near the end of Green Hill when I used Tails.

    Minor issues aside, this is a phenominal hack and you should be proud! This is one of the best hacks around, and with each release it only gets more impressive!!
  5. Xodras


    Went through the trouble of having all the SOL emeralds and Chaos emeralds. Hyper Team seems to break your ending transition for S1+S2.

    Loved having the trio playing through S1!
  6. flamewing


    Emerald Hunter Tech Member
    Sonic Classic Heroes; Sonic 2 Special Stage Editor; Sonic 3&K Heroes (on hold)
    I can't reproduce. What emulator are you using? How is it breaking? Are you using any cheats?
    Nevermind, I figured it out. Turns out my cheating to try to reproduce it caused me to not notice it :v: Next revision will fix it. By the way, the same should happen when picking up even a single emerald, as long as you don't fail a special stage in the mean time.

    Edit: Here is a build with it fixed.
  7. Knucklez


    I love 2B 'n' ass. Member
    When I saw the length of that change log my jaw dropped. Amazing.
  8. Xodras


    Thanks for the fix; resuming gameplay now!
    The only other glitch I've encountered is this one, it isn't as game-breaking as the last. Don't worry.
  9. Drex


    Lazy perfectionist Member
    It's kind of strange that he would have a Hyper Sonic sprite in that pose to begin with.
  10. FeliciaVal


    as far as im concerned, his goal was to make ALL super/hyper sprites for Sonic on this hack. I don't know if he managed to pull off it since I didn't collect all emeralds yet, but probably that's why he has the winning pose.
  11. redhotsonic


    Also known as RHS Tech Member
    United Kingdom
    Shit. Now I have no chance =P

    Had a quick five-minute go (I was on my way to bed), and spotted many bugs, but most of them to do with the same error.

    When you have the fire shield, lightning shield, or water shield, if you walk off a ledge and therefore, airborne, if you press A, B or C, you will perform that special move the shields can do. This also applies to Sonic's insta-shield, Tails' flying and Knuckles' gliding. If you attended for this to happen, shut me up, but I believe you're only meant to be able to do these when you've actually jumped. I'm guessing you've just forgotten to add the check first like "Is main character jumping? If not, branch away and do not do special move".

    Another bug is entering the special stage. I hit the big ring at the end of the level with Tails. Tails has now vanished and the others have stayed behind, doing their pose whilst the "end-of-level" results screen does its stuff. That's all good. But if I press A to switch characters, when the special stage starts, I have actually switched to that character. I switched to Sonic and Sonic went to the special stage. Again, if you attended for this to happen, shut me up, but it seems weird that Tails teleported away and the others stayed behind, yet I can still control who goes to the special stage. I think it would be much better that whoever jumps into the ring, that's that. You cannot change. It will look better.

    There was another glitch I spotted, but I think I may just being nit-picky there, so I will let it slip.

    You mean the Build/Render Sprites?

    EDIT: Oh, and thanks for crediting me here and there :)
  12. flamewing


    Emerald Hunter Tech Member
    Sonic Classic Heroes; Sonic 2 Special Stage Editor; Sonic 3&K Heroes (on hold)
    It is not a bug, it is a feature -- you can use the double-jump abilities whenever you are airborne and not going up faster than 4 pixels/frame. It has been that way for several versions already. So:


    Also intentional. This is so you can set up who to control in the next level. Although I suppose I could save the character that entered the ring and use him in the special stage.


    That should not have happened; that sprite should appear only for team Super and team Hyper. Let me see what is the issue and report back.

    Edit: Found and fixed.
  13. Knucklez


    I love 2B 'n' ass. Member
    Tails' palette is messed up on the Continue screen.

    Might I also suggest adding in each character's Continue animation from S3K? It only seems to play Sonic's Continue animation in any situation.
  14. The Shad

    The Shad

    ↑ & ↓ & ↻ Oldbie
    Question about that. Is is still the way it was where you only have to hit the button once? I think it would help if you did it so you have get into the rolling animation first and then hit it again. I find it quite helpful to be able to go into a roll animation when coming off a high area uncurled because you can better protect yourself from enemies since you're already in attack mode. Sort of like.. Triple Trouble, I think. Once to curl, again to special ability.

    Just a thought, though. Can't wait to try this out.
  15. I feel like I have discovered a bug, or an oversight. Should I be able to jump with all three buttons? I somehow can.

    I know two of them are for switching characters, so it doesn't make sense to have all three be jump AND have two switch chars...
  16. redhotsonic


    Also known as RHS Tech Member
    United Kingdom
    I'll just zip my mouth then, shall I? =P

    I think it would be better if you saved the character to entered the ring to use in the special stage. The transition of it all gets ruined if one jumped into the ring and another character who looks like they're staying behind goes instead.

    I'm gonna have to show you my workings out at some point, I've never got this ported perfectly =P
  17. BlueAuraEX


    The Blue Aura
    I played this a bit yesterday, and just from what I played in those few minutes, I was greatly impressed. For some reason, it felt much more natural getting Sol Emeralds AND Chaos Emeralds, instead of just getting 13 Chaos Emeralds to turn Super. And hell, when you get all the Sol and Chaos Emeralds in THIS hack, you can bloody go Hyper! That's another thing I wanted to tell you, and thank you about Flamewing: How you've almost "perfectly" ported the Sonic 3&K engine and physics (with a little bit of MegaMix) into not only Sonic 2, but both Sonic 1 AND 2. Even with all the tiny bugs and mishaps, this game still plays very well, and maintains all the greatness of it's now late father, Sonic 2 Heroes.

    I can't wait til you add the ability to play just Sonic 1 or 2, more teams, and of course, the extended options. These will truly perfect this game, and make it most likely the greatest hack I've played yet of "any" Sonic game. I have a few questions for you, as I'd like to know what you're planning for the future.

    #1: Will Sonic 3&K Heroes be turned into Sonic Classic Heroes 2? Or will it simply just keep it's current name? I know, kind of a dumb question, but I thought I'd ask just to make sure.

    #2: In Sonic Classic Heroes 2/Sonic 3&K Heroes, will we have access to the Sol Emeralds and Chaos Emeralds? Or will the Super Emeralds replace the Sol Emeralds? If this question is invading on any suprises, please tell me now so I'll know to stop hounding any further about that. XD

    #3: I've heard Sonic 3&K can be a bitch to glitch (aka, hack into). So knowing that, will that hack have less features than what we're seeing here in Sonic Classic Heroes? Or has the magic of Sonic Editing Tools surpassed the glitchyness of Sonic 3&K's event triggers? If you haven't even begun yet on it, please let me know, but I'm just going on what I've heard about how hard that game can be to hack into.

    Final Question: About the extra teams. What can we expect from this extra teams bit? Will you be able to forge your own custom teams? Will we get Team Dark/Chaotix/Rose, along with perhaps some other characters as well?

    I don't know how many characters can be fit into one single game, since it depends on the memory and such, but just thought I'd ask and see what you can tell me about this, because if you're actually going to do that, hot-damn...The team ideas I could make. Sonic/Mighty/Shadow = Team MegaMix! ;D Seriously though, what plans do you have for the extra teams?

    And that's about it! I wanna thank you again, Flamewing, as well as ColinC10 for contributing this hack to Sonic Retro so dilligently. I know I may not help much, but knowing that I'm actually participating in the ideas for this hack really is exciting, and it's been an awesome ride seeing the ideas of features you've been adding to this new hack. I hope the final revision of this meets yours, and everyone's expectations, and here's hoping for a good future in this new trilogy's career! Now if you'll excuse me, I'm off to play some Sonic Classic Heroes.
  18. dsrb


    What The Shad said in post #1134.

    Also, ^ it's a bit early to be talking about SCH2, jeez, and you might want to name some of "all the tiny bugs and mishaps" that you claim exist.
  19. PsychoSk8r


    PsychedelAnt | Tone Turner Oldbie
    Birmingham, UK
    30 Day Project: Revisited.A New Release!
    Can anyone mirror the file?
    Mediafire's not being very helpful, download keeps stopping at 29%. Stopped once at 99%, just as I thought it was going to work.
    That sucked. =P
  20. flamewing


    Emerald Hunter Tech Member
    Sonic Classic Heroes; Sonic 2 Special Stage Editor; Sonic 3&K Heroes (on hold)
    I have no idea myself; more below.

    This is not what I am worried about in S3&K; things that worry me is the high memory requirements needed for an extra character, getting one color free in each level and the high CPU cost of the extra character (collisions with objects, terrain, the artificial stupidity...). The CPU cost is more worrisome because S3&K is already stretched pretty thin; but the RAM cost is dangerous too. What is more, with the present state of the S3&K disassembly, it is virtually impossible exceedingly difficult to do all the work for the hack. Doing S3&K Heroes will have to wait until I have time to get the S3&K disassembly into as good a state as the S2 was when I begun (the SVN->Hg disassembly, not the 2007 version which people boneheadedly adhere to).

    No to forging custom teams; that would require art recoloring in the middle of the game, which is not fun (high CPU cost), among other things. There are some teams on the works, but the feasibility of any team is unknown beforehand; for example, I have complete sheets for team Chaotix and I would be able to code them quickly; but I haven't been able to make them look good in the allotted palette yet, and it would take substantial spriting effort to do so (the S2 special stages are a non-issue because there are two palette lines for the characters, the problems are the normal game and the S1 special stages). As for the other teams: there is nothing I am willing to announce yet that I haven't done so already: team Super, team Hyper, team Mini and team Glitch.